Skip to content

feat: Streaming Diff Oven (agent-agnostic, ported onto main)#8

Merged
apresmoi merged 15 commits into
mainfrom
feat/streaming-diff-core
Jul 16, 2026
Merged

feat: Streaming Diff Oven (agent-agnostic, ported onto main)#8
apresmoi merged 15 commits into
mainfrom
feat/streaming-diff-core

Conversation

@apresmoi

@apresmoi apresmoi commented Jul 15, 2026

Copy link
Copy Markdown
Collaborator

Builds on @alowpoly's #5 and the design we worked out in that thread. Ports the Streaming Diff Oven onto current main and makes capture agent-agnostic (Codex + Claude Code). Opened as a separate PR only because #5's branch is far behind on the old layout; co-authored with @alowpoly.

What it does

Watch an agent edit your repo, live. Hooks bracket each file-mutating tool call and publish a timestamped, per-session diff feed into git-ignored .local/; the dashboard streams it over SSE.

agent edit -> pre/post hook -> burnlist streaming-diff capture -> .local feed -> dashboard (SSE)

Key decisions

  • No tokens: the CLI writes .local/ atomically; the dashboard is a read-only observer.
  • Pre-to-post snapshot diff (not git diff HEAD), so pre-existing dirty changes are never misattributed to the tool.
  • Honesty is structural: opaque / denied / redacted / truncated / overlapping edits render partial, never a false captured.
  • Deny-by-default content policy: secrets, .env, ignored, .git/, and symlink escapes are never captured; secret patterns are redacted before any write.
  • Kept lean: role/task roster deferred, Visual Parity stays its own oven, watch dropped.

Install

burnlist hooks install --agent codex,claude merges hooks into .codex/hooks.json + .claude/settings.json (agent-specific events, capability check, all-or-nothing).

Verification

npm run verify is green (414 tests) on Node 18/20/22, including HTTP/SSE integration and a socketless synthetic acceptance test. The repo-state cross-process lock was also redesigned into a directory-lock primitive to close crash-recovery races and de-flake Node 18 CI.

Please poke holes, especially at: pre-to-post attribution, the read-only-observer boundary, the content/redaction policy, and the Codex/Claude adapter payload mapping.

apresmoi and others added 6 commits July 15, 2026 13:05
Co-authored-by: Agustin Capeletto <174887634+alowpoly@users.noreply.github.com>
Co-authored-by: Agustin Capeletto <174887634+alowpoly@users.noreply.github.com>
Co-authored-by: Agustin Capeletto <174887634+alowpoly@users.noreply.github.com>
Co-authored-by: Agustin Capeletto <174887634+alowpoly@users.noreply.github.com>
Co-authored-by: Agustin Capeletto <174887634+alowpoly@users.noreply.github.com>
Co-authored-by: Agustin Capeletto <174887634+alowpoly@users.noreply.github.com>
@apresmoi
apresmoi force-pushed the feat/streaming-diff-core branch from 003049a to 95ebf3d Compare July 15, 2026 11:05
@apresmoi apresmoi changed the title feat: Streaming Diff Oven (agent-agnostic, ported onto main) feat: Streaming Diff Oven — port of #5 onto main (agent-agnostic) Jul 15, 2026
apresmoi and others added 5 commits July 15, 2026 13:51
…nstall per review

Co-authored-by: Agustin Capeletto <174887634+alowpoly@users.noreply.github.com>
… binary consistency

Co-authored-by: Agustin Capeletto <174887634+alowpoly@users.noreply.github.com>
…e 18 CI)

Co-authored-by: Agustin Capeletto <174887634+alowpoly@users.noreply.github.com>
…eview)

Co-authored-by: Agustin Capeletto <174887634+alowpoly@users.noreply.github.com>
Co-authored-by: Agustin Capeletto <174887634+alowpoly@users.noreply.github.com>
@apresmoi apresmoi changed the title feat: Streaming Diff Oven — port of #5 onto main (agent-agnostic) feat: Streaming Diff Oven (agent-agnostic, ported onto main) Jul 16, 2026
apresmoi and others added 4 commits July 16, 2026 03:37
…ock reclaim (review)

Co-authored-by: Agustin Capeletto <174887634+alowpoly@users.noreply.github.com>
…updates (review)

Co-authored-by: Agustin Capeletto <174887634+alowpoly@users.noreply.github.com>
…the directory-lock (review)

Co-authored-by: Agustin Capeletto <174887634+alowpoly@users.noreply.github.com>
Co-authored-by: Agustin Capeletto <174887634+alowpoly@users.noreply.github.com>
@apresmoi
apresmoi merged commit 440ffe3 into main Jul 16, 2026
3 checks 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