Commit Graph

8 Commits

Author SHA1 Message Date
Julius Brussee 2336b645c3 fix(engine): stop the compressors rewriting line endings and eliding real changes
splitLines/joinLines keep every line's own CR attached, so a document with
mixed endings survives a round trip; the old "one CRLF anywhere picks the
separator" rule rewrote whole files. isChangedDiffLine no longer classifies
a change whose content starts with '-'/'+' (or a bare blank-line change) as
context, and splitTextSections keeps a fenced code block as one unit instead
of splitting and TrimSpace-ing it into pieces.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SqmbqWDtNexzDfH5V3BMRz
2026-08-20 04:14:49 +02:00
Julius Brussee 12eadba275 fix(engine): guard the unterminated <file> tag that panicked unwrapFileWrapper
When an open tag is never closed, fileOpeningTagEnd walks forward into the
closing tag's own `>`, putting openEnd past closeStart — the inner slice then
panics. Such input is not a wrapper; return it untouched. Covered by two new
cases: an open tag whose only `>` belongs to `</file>`, and a quoted
attribute containing `>`.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SqmbqWDtNexzDfH5V3BMRz
2026-08-20 04:14:49 +02:00
Julius Brussee 8fe0631dcc engine: unwrap agent <file> wrappers before content classification
In-flight work that was already in the working tree, committed alongside the
cross-platform review at the user's request. NOT reviewed as part of that
review — recorded separately so it stays attributable.

Generalizes unwrapListing into unwrapInput (engine/filewrap.go) so agent
<file> tags are stripped alongside read-tool line-number gutters before
Detect classifies content, and rewrapped afterwards. Carries matching
packages/cli changes and their runtime tests.

Verified before committing: `go test ./engine/` passes and the
packages/cli suite is 612 passed / 0 failed / 17 skipped.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Ez7w7BBtKrMZCiZz9ea4cb
2026-08-20 04:14:48 +02:00
Julius Brussee ee3199bca8 docs: add technical manual, cross-link existing docs
Twenty-chapter manual under docs/technical/ with a docs/README.md index;
existing docs and package READMEs now link into it.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Bn1A1mU7TX9dsDb5mbSBE3
2026-08-16 21:21:25 +02:00
Julius Brussee cdb9558cf4 a11y query focus: keep whole row/listitem around a matched cell
A query match inside a table row previously kept only the matching cell and
its ancestors, dropping sibling cells — an order-id lookup returned the id
without its customer/amount and read as "data unavailable". Focused views now
keep the full line item for row/listitem matches. Covered by
TestAXTreeQueryKeepsWholeRowForLineItemMatches.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QFtucDtdg6N8dM6jWRzeGW
2026-08-14 22:54:24 +02:00
Julius Brussee c72984e439 fix(windows): harden hooks and BSL docs
Improve Windows support across installer, CLI hooks, binary lookup, hidden child processes, JetBrains detection, and Chrome discovery. Add real Windows ACL checks for SQLite parent directories instead of skipping the security guard.

Also expand BSL-1.1 coverage/documentation for new engine-linked runtime modules (`cacheengine`, `rewriter`, `browse`) and add repo/CI checks so license boundaries and cross-platform test paths stay enforced.
2026-08-13 17:27:59 +02:00
Julius Brussee d4ef06be1c chore: scrub private-repo references from public tree (#832)
Removes ADR citations (decision records live in the private repo;
links were broken here) while keeping every described invariant
inline, and fixes generator headers / doc titles that leaked the
private monorepo layout (public/cli, cloud/web). Comments and docs
only — no behavior change.


Claude-Session: https://claude.ai/code/session_01DLNTYJU8vMEdDWpV7e7k7Z

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-08-13 01:41:38 +02:00
Julius Brussee 82864c8f4c feat: ship Caveman 2.0.0 — engine, proxy, SDKs, unified CLI
Single-commit port of the Caveman 2 tree onto the original repo history
(candidate caveman-2@88878a4 applied over main@3098342). No unrelated-history
merge; original history untouched.

Preserved v1 surfaces:
- skills/caveman/SKILL.md byte-for-byte, plus plugin mirror and caveman.skill zip
- legacy CI (Node 18/20/22 installer + Python 3.11 suites) alongside engine-ci
- cli/install.js compatibility shim forwarding to bin/install.js
- .codex/config.toml ships both hooks and codex_hooks for older Codex (#617)
- README Trendshift + Skills.sh badges and local star-history asset
- v1.10.0-pinned curl installs; benchmarks/tmp-starcharts ignore rules

Fixed for public same-repo release:
- SECURITY.md vulnerability reporting points at this repository
- release-binaries.yml publishes to this repo via job-scoped GITHUB_TOKEN
  (cross-repo PAT removed); binary-release environment still gates signing
- packages/cli/PUBLISHING.md rewritten for packages/ layout and same-repo flow
- profile-contract and provider-catalog lanes skip lane-scope gates on
  initial import so the launch PR can gate on their real validation steps
- ANNOUNCEMENT.md network claim corrected: compression is local; requests
  still go to the provider you configured

Caveman 2 stays opt-in: bin-v1.0.0 binaries and @caveman-ai/cli publish
separately after this lands and soaks.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BLvb5QniwYjmcawyssQNw9
2026-08-11 16:46:10 +02:00