Repository navigation
Conversation
LLMs return various forms (bugs, security, etc.) that don't match the strict enum variants. Switch issue_type to Option<String> with serde aliases for both 'type' and 'issue_type' JSON fields. Also adds from_str_lossy() for manual parsing when needed.
fix: handle LLM issue_type output variations
- ~/.cora/ for brand awareness (easy to remember) - ~/.cora/config.toml stores API key (0600 permissions) - Centralized cora_dir() helper instead of repeated dirs::config_dir() - Updated auth messages to reference ~/.cora/ path
fix: use ~/.cora/ as config directory
- #14 Shell completion (bash, zsh, fish, powershell) - #15 Homebrew tap support (release workflow auto-generates formula) - #16 Streaming LLM responses (--stream flag for cora review) - #17 GitHub Action CI/CD + multi-platform release workflow - #18 Comprehensive tests (151 tests: unit + integration) - #19 Incremental scan (--incremental flag, cache in ~/.cora/) - #20 Multi-provider auto-detection (openai, anthropic, groq, ollama, zai) - #21 SARIF upload to GitHub Code Scanning (cora upload-sarif + --upload)
- CI: 5 parallel jobs (check/fmt/clippy/test/build), rust-cache@v2 - Release: 4-platform matrix (linux x86_64/arm64, macos, windows), crates.io publish via Infisical OIDC, template release notes, Windows zip packaging - Website: SvelteKit + adapter-static, dark amber theme, landing page, docs (CLI reference, config, providers, examples) - Deploy: CF Pages via Infisical OIDC (cora.ajianaz.dev)
# Conflicts: # .github/workflows/ci.yml # .github/workflows/release.yml
feat: add website, upgrade CI/CD workflows
- Remove useless anyhow::Error conversion in scan.rs - Use is_ok_and instead of map_or in providers.rs - Remove constant-value assertions in types.rs
fix: resolve clippy warnings and fmt issues
…ions - Design system: Linear-inspired dark palette, violet accent (#7170ff), Inter + JetBrains Mono - Hero: animated gradient mesh, CSS code-rain background, gradient headline, glass terminal window - Terminal demo: typing animation with color-coded output (green/yellow/red) - Features: 6 glass-cards with custom SVG icons, hover glow, staggered scroll-reveal - Comparison table: cora column highlighted with accent background - Quick start: 4-step vertical timeline with connecting line - All sections: scroll-reveal entrance animations via IntersectionObserver - Docs: sticky sidebar nav, terminal-window code blocks, accent underlines - Motion: 8+ CSS keyframe animations, prefers-reduced-motion support - 0 emoji, 0 amber — all SVG icons, violet + green only
feat: complete website redesign — Linear-inspired dark theme + animations
Design system rewrite following design-engineering skill rules: - oklch color tokens (no pure black/white) - 14-step typography scale (no arbitrary sizes) - gap-6 spacing system, consistent rhythm - Tall/compact section alternation (skyline rule) - Glass cards: bg-card rounded-2xl p-6 shadow border - Touch targets 44px, card shadows 0.3 opacity - Accent color max 5 places per page - Scroll-reveal with IntersectionObserver - Typing terminal animation with color-coded output - prefers-reduced-motion respected - No emoji, no transition:all, no scale(0) - SVG icons only, no code rain (removed — looked messy)
feat: website v3 — design-engineering spec, proper spacing, oklch tokens
- Header: sticky glass nav with logo, Docs/GitHub links, Get Started CTA - Spacing: hero calc(100vh - 3.5rem), footer mt-4rem, terminal font-size fixes - Docs: 4 new pages (getting-started, installation, usage, self-hosted) - Sidebar: 8 nav links in proper order - GitHub URL: verified correct (ajianaz/cora-cli)
feat: sticky header nav + spacing fixes + 4 docs pages
Self-hosted docs don't apply to cora-cli which runs locally. Removed /docs/self-hosted page and sidebar link. Replaced Next Steps link with CLI Reference.
fix: remove self-hosted docs page
- Footer links: min-height 44px + inline-flex for touch targets - Copy button: 32px → 44px min-height/min-width - Hero terminal: max-w-md → max-w-lg (wider) - Comparison table: mobile font-size 13px + reduced padding @640px
fix: QA minor findings — touch targets, terminal width, table mobile
- Hero h1: text-4xl sm:text-5xl md:text-6xl lg:text-7xl - Section headings: text-2xl md:text-3xl - Body text: text-sm/text-base sm:text-lg - KPI stats: text-2xl md:text-3xl - Section padding: mobile reduced (3rem/2rem vs 6rem/4rem) - Footer: border-t, py-8, responsive flex - 15 inline styles kept (gradient, transition-delay, dynamic color) - Header: mobile CTA added (sm:hidden / sm:block)
refactor: convert inline styles to Tailwind responsive classes
…search - Add 8px spacing scale CSS variables (space-1 to space-32) - Section vertical rhythm: 48/64 mobile → 96/128 desktop (matches Linear) - Container: max-w-1152px, px-24 mobile → px-40 desktop - Hero: section-hero class (80/64 → 96/80 → 128/96) - Feature card spacing: mt-4 icon-to-heading, mt-2 accent-to-body - CTA/Footer separation: mt-20 (80px) - Mobile section-tall: 64px, section-compact: 48px
# Conflicts: # website/src/routes/+page.svelte
fix: 8px grid spacing system
- 329 inline styles → 2 (radial-gradient + dynamic color binding) - Docs pages wrapped in .docs-content class (h1/h2/p/code/pre handled by CSS) - transition-delay: Xms → [transition-delay:Xms] Tailwind arbitrary - Added CSS classes: docs-section, docs-card, docs-card-number, docs-term-list, docs-term-item, docs-term-key, docs-term-value, docs-link-list - Color vars → Tailwind: text-[var(--muted-foreground)], text-[var(--accent)] - Flex layouts → flex items-center gap-2, flex flex-col gap-2 - Zero content changes — style-only migration
refactor: remove all 327 inline styles
- Remove 2 stale @media (max-width: 640px) overrides (section + table) - Fix docs sidebar: use min-width: 768px for mobile-docs-nav hide - Fix docs sidebar collapse: max-width: 767px (below md breakpoint) - Fix connect-line max-width: --space-15 → --space-10 (exists in scale) - Mobile section spacing now purely from min-width queries
fix: QA — stale media queries & spacing scale refs
- Switch to wait_with_output() inside spawned thread (no stdout/stderr ownership ambiguity) - Apply cargo fmt Co-Authored-By: codecoradev <noreply@github.com>
- Wrap collect_static_context in block_in_place for async safety - Add unused_mut allow (child moved into thread) - Document process lifecycle on timeout Co-Authored-By: codecoradev <noreply@github.com>
feat: inject static analysis context into review prompt (#140)
### Added - Static analysis context injection (#140) - cora config validate (#88) - CoraError enum via thiserror (#86) ### Changed - Engine layer: anyhow → thiserror (#86) - All clippy pedantic warnings resolved: 175 → 0 (#84) - Repo URLs → codecoradev/cora-cli (#137) - CI: upload-artifact@v7, Node 24 strict (#142) ### Fixed - CI Cora Review fails on LLM API errors (#142) - Match arm merge in IssueType::from_str (#141) Co-Authored-By: codecoradev <noreply@github.com>
release: v0.3.0
- Add diff_parser.rs: parse unified diff into FileChunk/DiffHunk/DiffLine with language detection, line tracking, binary/new/deleted file support - Add rules/ module (4 files): RuleEngine with 12 built-in rules + custom YAML rules, regex matching with language/exclude filters, post-match filter for localhost URL exclusion - Extend schema.rs: RulesConfig for .cora.yaml integration - Update review.rs: rule engine integration (pre-LLM + merge findings) - Add detect_language() with 40+ extensions incl. image/document/lock - All 266 tests pass, cargo clippy clean Refs: #116, #147 (v0.4 Engine Pipeline)
- Add bundling/ (3 files): Smart grouping by directory/language, flat batching, merge small groups, BundlingConfig with 34 tests - Add context/ (4 files): Symbol extraction (imports, fn calls, types) per language (Rust/Python/JS/Go/Java), cross-file resolver with token budget, ContextConfig - Extend schema.rs: BundlingConfig, ContextConfig in ReviewSection - 351 tests pass Refs: #115, #114, #147 (v0.4 Engine Pipeline)
- Remove duplicate #[allow(dead_code)] in bundling mod.rs - Fix duplicate ContextConfig import in context mod.rs - Fix private GroupingStrategy re-export path - Use struct field init instead of Default + reassign - Use rsplit_once instead of manual suffix stripping - 351 tests pass, 4 clippy warnings (expected dead code) Refs: #147 (v0.4 Engine Pipeline)
Refs: #147 (v0.4 Engine Pipeline)
Previously, if the LLM call returned an error (auth, timeout, network), all deterministic rule findings were silently discarded because the ? operator propagated the error before merge. Now: on LLM failure, if rule findings exist, return a fallback ReviewResponse with only deterministic findings. This ensures pre-commit hooks always surface security/best-practice violations regardless of LLM availability.
- Add #[allow(dead_code)] to v0.5-forward items (ExtractedSymbol, ContextChain.stats, extract_added_lines, parse_and_run_rules) - Run cargo fmt on all files (context/extraction.rs, types.rs, review.rs, matching.rs import order)
- Reverse upload-sarif default to true (opt-out, not opt-in) - Rename SARIF tool driver to CodeCora (branding) - Add fullName field: codecoradev/cora-cli - Update watermark: Reviewed by CodeCora vX.Y.Z - Add test for fullName field verification
feat: v0.4 — Deterministic Engine Pipeline (Rules + Bundling + Context Chain)
release: v0.4.0
- Add on_violation: warn|disallow to hook config - disallow blocks commit on oversized diff (exit 2) - Add --ci flag: skip max_diff_size, hard gate on any findings - Default on_violation: warn (backward compatible) Closes #149
…docs - Add install.sh (curl | sh) with OS/arch detection, path traversal check - README: prioritize Quick Install over Cargo - README: add --ci flag to review command examples - README: add on_violation to hook config docs - README: add Windows binary install note Ref: #151
feat: on_violation config + --ci mode for hard gating
…n PRs) Only upload SARIF to GitHub Code Scanning when the review actually found issues. This prevents the CodeCora check from showing as 'failed' on clean PRs where cora found no problems. The upload-sarif step now depends on a sarif-check step that parses the SARIF and outputs the findings count. The upload only runs when findings > 0. Co-Authored-By: codecoradev <noreply@github.com>
fix: skip SARIF upload when no findings
- Add SHA256 checksum verification to install.sh (uses checksums-sha256.txt from releases) - Add sync-main job to release workflow (pushes develop → main on every tag) - Update release notes template to prioritize install.sh over manual download - Fix changelog link to point to main branch - Add CORA_VERSION pinning example in README - Simplify CI manual install to use install.sh Closes #151
…rce-push rationale - Add explicit if guard: startsWith(github.ref, 'refs/tags/v') - build-release now needs: sync-main (sequential, not parallel) - Document why force-push is safe: main is release-only mirror
feat: release branch setup + install.sh checksum verification
Branch protection on main requires Cora Review check, but the workflow only triggered on develop PRs — causing merge to be blocked.
fix: enable Cora Review on PRs to main branch
🔍 Cora AI Code ReviewReview powered by cora-cli · BYOK · MIT |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Release Sync
Syncs
mainwithdevelopto makeinstall.shavailable at the documented URL.Trigger: Manual sync (PR #154 already merged to develop; next tag would trigger sync-main, but we need main updated now so
curl .../main/install.shworks).Changes since last main:
Post-merge:
curl -fsSL https://raw.githubusercontent.com/codecoradev/cora-cli/main/install.sh | shwill work.