Skip to content

release: sync main with develop (includes install.sh + checksum verification) - #155

Merged
ajianaz merged 160 commits into
mainfrom
develop
Jun 4, 2026
Merged

ajianaz merged 160 commits into
mainfrom
develop

Conversation

@ajianaz

@ajianaz ajianaz commented Jun 4, 2026

Copy link
Copy Markdown
Collaborator

Release Sync

Syncs main with develop to make install.sh available 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.sh works).

Changes since last main:

  • SHA256 checksum verification in install.sh
  • sync-main job in release.yml (future releases auto-sync)
  • README updates (CORA_VERSION pinning, CI install)
  • All commits from v0.2.0 → v0.4.0 releases

Post-merge: curl -fsSL https://raw.githubusercontent.com/codecoradev/cora-cli/main/install.sh | sh will work.

CTO Hermes and others added 30 commits May 30, 2026 11:05
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)
feat: implement all v0.1.x open issues (#14-#21)
- 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.
- 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
- 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
- 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
CTO Hermes and others added 26 commits June 3, 2026 01:04
- 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>
- 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)
- Wire context chain extraction into review_diff_inner()
- Context chain text injected after rules/static analysis context
- 351 tests pass, compiles clean

Refs: #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)
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)
- 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>
- 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
@github-actions

github-actions Bot commented Jun 4, 2026

Copy link
Copy Markdown

🔍 Cora AI Code Review

⚠️ Review could not complete. Cora produced an empty result. Check the workflow logs for errors.


Review powered by cora-cli · BYOK · MIT

@ajianaz
ajianaz merged commit c31284a into main Jun 4, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant