Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
18 commits
Select commit Hold shift + click to select a range
9b0cc7b
fix(ci): harden release workflow — safe sync-main, blocking deps (#27…
ajianaz Jun 14, 2026
c423c74
fix(ci): remove sync-main — correct GitFlow (develop→main→tag) (#280)
ajianaz Jun 14, 2026
b1310fc
feat: cora index + cora explore — symbol index & search (#264, #265) …
ajianaz Jun 14, 2026
83a5f99
feat: language expansion + callers/impact CLI (#266, #268) (#282)
ajianaz Jun 14, 2026
d239b68
feat: cora affected + index --watch + call graph edge extraction (#26…
ajianaz Jun 14, 2026
817de0f
feat: MCP Phase 1 — Code Intelligence tools (#284) (#287)
ajianaz Jun 14, 2026
d9493ed
feat: MCP Phase 2+3 — Review, Debt, Project Info, Memory (#285, #286)…
ajianaz Jun 14, 2026
fab8bae
chore: set base to /docs/cora/ for unified routing
ajianaz Jun 14, 2026
ecbb834
ci: add CF Pages deploy workflow for unified routing
ajianaz Jun 14, 2026
204cff2
fix: remove double base prefix in links
ajianaz Jun 14, 2026
f693825
Merge pull request #289 from codecoradev/chore/docs-subpath
ajianaz Jun 14, 2026
19add05
fix(ci): use docs:build script name in deploy workflow (#290)
ajianaz Jun 14, 2026
3c3626c
fix(ci): deploy to production (remove --branch flag) (#291)
ajianaz Jun 14, 2026
b41e011
fix: align deploy workflow with uteke/trapfall pattern
ajianaz Jun 14, 2026
24945ac
Merge pull request #292 from codecoradev/fix/deploy-workflow-align
ajianaz Jun 14, 2026
0de6283
fix: rename CF Pages project to cora-cli
ajianaz Jun 14, 2026
4fc4489
Merge pull request #293 from codecoradev/fix/rename-cf-project
ajianaz Jun 14, 2026
aa7bf9e
feat: Cora + Uteke bundle installer + cross-product docs (#235) (#294)
ajianaz Jun 14, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 6 additions & 6 deletions .github/workflows/deploy-website.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,8 @@ concurrency:
cancel-in-progress: false

permissions:
id-token: write
contents: read
deployments: write

env:
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true
Expand All @@ -23,9 +23,9 @@ jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6

- uses: actions/setup-node@v4
- uses: actions/setup-node@v6
with:
node-version: 24
cache: npm
Expand All @@ -47,9 +47,9 @@ jobs:
fi

- name: Deploy to Cloudflare Pages
uses: cloudflare/wrangler-action@v3
uses: cloudflare/wrangler-action@v4
with:
apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }}
accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
preCommands: npx wrangler pages project create cora --production-branch=main || true
command: pages deploy docs/.vitepress/dist/ --project-name=cora --commit-dirty=true --branch=main
preCommands: npx wrangler pages project create cora-cli --production-branch=main || true
command: pages deploy docs/.vitepress/dist/ --project-name=cora-cli --commit-dirty=true --branch=main
51 changes: 32 additions & 19 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,13 @@
name: Release

# Release is triggered by pushing a vX.Y.Z tag.
#
# PREREQUISITE: Before tagging, merge develop → main via PR.
# The tag must point to a commit on main, NOT develop.
# GitFlow: develop (default) → PR → main → tag → release.
#
# This workflow does NOT sync main — main must already be up to date.

on:
push:
tags:
Expand All @@ -10,27 +18,32 @@ env:
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true

jobs:
sync-main:
name: Sync main branch
verify-main:
name: Verify tag is on main
runs-on: ubuntu-latest
# Only runs on v* tag pushes (release trigger). Uses force-push because main
# is a release-only mirror of develop — any commits on main not in develop
# are stale snapshots that should be overwritten by the current release.
if: startsWith(github.ref, 'refs/tags/v')
permissions:
contents: write
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
with:
ref: develop

- name: Push to main
fetch-depth: 0
- name: Check tag is on main
run: |
git push origin HEAD:main --force
echo "✅ main synced to develop at ${{ github.sha }}"
git fetch origin main
TAG_SHA=$(git rev-parse "${{ github.ref }}^{commit}")
MAIN_SHA=$(git rev-parse origin/main)
echo "Tag: $TAG_SHA"
echo "main: $MAIN_SHA"
if [ "$TAG_SHA" = "$MAIN_SHA" ]; then
echo "✅ Tag is main HEAD"
elif git merge-base --is-ancestor "$TAG_SHA" origin/main 2>/dev/null; then
echo "✅ Tag commit $TAG_SHA is in main history"
else
echo "::error::Tag commit $TAG_SHA is NOT on main."
echo "Merge develop → main via PR before tagging."
exit 1
fi

build-release:
needs: sync-main
needs: [verify-main]
name: Build ${{ matrix.target }}
runs-on: ${{ matrix.os }}
strategy:
Expand Down Expand Up @@ -59,7 +72,7 @@ jobs:
ext: zip

steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6

- uses: dtolnay/rust-toolchain@stable
with:
Expand Down Expand Up @@ -106,12 +119,12 @@ jobs:

publish-crates:
name: Publish to crates.io
needs: []
needs: [verify-main]
runs-on: ubuntu-latest
permissions:
id-token: write
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6

- uses: dtolnay/rust-toolchain@stable

Expand All @@ -126,7 +139,7 @@ jobs:
contents: write

steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6

- name: Download all artifacts
uses: actions/download-artifact@v4
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -44,3 +44,4 @@ dist/
*.tar.gz
*.zip
.cora/history/
.cora/index.db
5 changes: 5 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

## [Unreleased]

### Added

- **Cora + Uteke bundle installer** (`install-bundle.sh`) — single command installs both tools (#235)
- **Documentation** — Uteke memory integration docs across README, usage, getting-started, cli-reference

## [0.5.1] - 2026-06-13

### Added
Expand Down
68 changes: 68 additions & 0 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 3 additions & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,9 @@ futures-util = "0.3"
sha2 = "0.10"
chrono = { version = "0.4.44", features = ["serde"] }

# Symbol index (v0.6 — Code Intelligence)
rusqlite = { version = "0.31", features = ["bundled"] }

[dev-dependencies]
assert_cmd = "2"
predicates = "3"
Expand Down
28 changes: 28 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,11 @@
### Install

```bash
# Cora only (standalone)
curl -fsSL https://raw.githubusercontent.com/codecoradev/cora-cli/main/install.sh | sh

# Or install both Cora + Uteke (code review with memory)
curl -fsSL https://raw.githubusercontent.com/codecoradev/cora-cli/main/install-bundle.sh | sh
```

> Pin a version: `CORA_VERSION=v0.5.1 curl -fsSL ... | sh`
Expand Down Expand Up @@ -148,6 +152,30 @@ Works on **all CI platforms** — [Gitea, GitLab, Bitbucket →](https://codecor

See **[CLI Reference →](https://codecora.dev/cli-reference.html)** for all flags and examples.

## Uteke Memory Integration

Cora works 100% standalone. Install [Uteke](https://github.com/codecoradev/uteke) to unlock **memory-powered reviews** that learn from your codebase history.

| Mode | Command | What it does |
|------|---------|-------------|
| Standalone (default) | `cora review` | AI review, zero deps |
| Memory recall | `cora review --memory` | Recall project patterns before review |
| Learning | `cora review --memory --learn` | Recall + save findings after review |

```bash
# Install Uteke separately
curl -fsSL https://raw.githubusercontent.com/codecoradev/uteke/main/install.sh | sh

# Or install both at once
curl -fsSL https://raw.githubusercontent.com/codecoradev/cora-cli/main/install-bundle.sh | sh

# Enable memory
export PATH="$HOME/.local/bin:$PATH"
cora review --staged --memory --learn
```

Your code review gets smarter every sprint.

## Environment Variables

| Variable | Description |
Expand Down
19 changes: 7 additions & 12 deletions docs/.vitepress/config.mts
Original file line number Diff line number Diff line change
@@ -1,35 +1,30 @@
import { defineConfig } from 'vitepress'

export default defineConfig({
title: 'cora',
title: 'Cora',
description: 'AI-Powered Code Review CLI — BYOK, zero config, runs in your terminal',
base: '/docs/cora/',

head: [
['link', { rel: 'icon', type: 'image/svg+xml', href: '/favicon.svg' }],
['link', { rel: 'alternate icon', type: 'image/png', href: '/favicon.png' }],
['meta', { name: 'theme-color', content: '#6366f1' }],
['meta', { property: 'og:type', content: 'website' }],
['meta', { property: 'og:title', content: 'cora — AI Code Review CLI' }],
['meta', { property: 'og:title', content: 'Cora — AI Code Review CLI' }],
['meta', { property: 'og:description', content: 'BYOK, zero config, runs in your terminal' }],
['meta', { property: 'og:image', content: 'https://codecora.dev/og.png' }],
['meta', { property: 'og:url', content: 'https://codecora.dev/' }],
['meta', { property: 'og:image', content: 'https://codecora.dev/docs/cora/og.png' }],
['meta', { property: 'og:url', content: 'https://codecora.dev/docs/cora/' }],
],

themeConfig: {
logo: '/logo.svg',

nav: [
{ text: 'Codecora', link: 'https://codecora.dev' },
{ text: 'Docs', link: '/getting-started' },
{ text: 'Examples', link: '/examples' },
{ text: 'Changelog', link: '/changelog' },
{ text: 'Roadmap', link: '/roadmap' },
{
text: 'v0.5.1',
items: [
{ text: 'GitHub', link: 'https://github.com/codecoradev/cora-cli' },
{ text: 'Releases', link: 'https://github.com/codecoradev/cora-cli/releases' },
],
},
{ text: 'GitHub', link: 'https://github.com/codecoradev/cora-cli' },
],

sidebar: {
Expand Down
5 changes: 5 additions & 0 deletions docs/changelog.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

## [Unreleased]

### Added

- **Cora + Uteke bundle installer** (`install-bundle.sh`) — single command installs both tools (#235)
- **Documentation** — Uteke memory integration docs across README, usage, getting-started, cli-reference

## [0.5.1] - 2026-06-13

### Added
Expand Down
8 changes: 8 additions & 0 deletions docs/cli-reference.md
Original file line number Diff line number Diff line change
Expand Up @@ -96,3 +96,11 @@ $ cora commit
# YOLO mode — auto-commit, no prompts
$ cora commit --yolo
```

```bash
# Install both Cora + Uteke (code review with memory)
$ curl -fsSL https://raw.githubusercontent.com/codecoradev/cora-cli/main/install-bundle.sh | sh

# Then review with memory:
$ cora review --staged --memory --learn
```
Loading
Loading