feat: brand agent memory as Proof and the runner as Oven - #244
Conversation
|
This pull request is part of a Mergify stack:
|
There was a problem hiding this comment.
Stale comment
CI Root Cause
Status: third-party-failure
Failing checks:
- build (22.x, ubuntu-latest):
pnpm install --frozen-lockfilefailed —sharp@0.31.3download socket hang up fromgithub.com/lovell/sharp-libvipsEvidence:
- Job never reached the build step; it failed during install only.
- Sibling matrix cells on the same SHA (
6ddd90e9) passed install and their jobs, includingbuild (20.x, ubuntu-latest),lint (22.x),test (22.x), and all integration-* matrix cells.- Log lines:
sharp: Downloading https://github.com/lovell/sharp-libvips/releases/download/v8.13.3/libvips-8.13.3-linux-x64.tar.brthensharp: Installation error: socket hang up.sqlite3also loggedprebuild-install warn install socket hang upin the same install (secondary network flakiness).Resolution steps:
- Re-run the failed
build (22.x, ubuntu-latest)job (or the whole Pipeline workflow) on commit6ddd90e9c1aa49420aa9f8b7cc5284694d5d62d6once GitHub Releases is healthy.- No branch code change is required for this failure.
- If install keeps failing after retries, check GitHub status / sharp-libvips release CDN reachability from Actions runners.
No code changes were made because this failure is not caused by the branch.
Sent by Cursor Automation: Flatbread - Fix CI
Switch the memory package, CLI, types, and docs to Proof. Point remaining DAG-runner mentions at Oven. Co-authored-by: Cursor <cursoragent@cursor.com> Change-Id: Ic03af69fa313f104155886c7e6ffa0253dc2a0cd
6ddd90e to
9f27b40
Compare
Revision history
|
There was a problem hiding this comment.
Review verdict
BLOCK — docs teach pnpm add -Dw @flatbread/oven / pnpm exec oven as the primary Oven path while @flatbread/oven is unpublished and missing from this workspace (BLOCKER on .cursor/dags/README.md). Rule: any BLOCKER → BLOCK.
Effort→Proof rename happy path is mostly coherent, but several sticky public contracts break without a shim, migration detection, or a truthful CHANGELOG ## 1.0.0 identity.
Blocking / consensus HIGH (priority order)
- Oven install docs — npm 404 for
@flatbread/oven;pnpm exec ovenfails on a fresh clone. - Default graph root —
.flatbread-efforts→.flatbread-proofwith no leftover-tree detection; empty-graph trap on upgrade. - CLI rename —
flatbread effort …removed with no alias or structured rename error. - Package / facade —
@flatbread/effort-graph/effortGraphContentgone with no compat path. - CHANGELOG
## 1.0.0— still teaches pre-rename package set (effort-graph memory + proof DAG runner). - Error codes — mixed
EFFORT_BOOTSTRAP_*vsPROOF_*/EFFORT_GRAPH_*→PROOF_*without a dual-emit policy.
Coverage plan (top)
- Bootstrap asserts
graph_root === '.flatbread-proof'(and not.flatbread-efforts). - Spawn test locking
effortalias-or-rename-error policy. findProofContentRootedge suite (empty / duplicate / bad suffix / ref mismatch).- liveServer negative: composition active + source missing
fetchPaths. - Facade export lock:
proofContentpresent,effortGraphContentabsent.
Reviewer scoreboard
| Perspective | Signal |
|---|---|
| correctness-and-contracts | Strong — sticky contract map |
| test-coverage-robustness | Strong — concrete rename/composition gaps |
| cli-and-runtime | Solid, under-escalated sticky breaks |
| docs-and-positioning | Strong — Oven BLOCKER decisive |
| release-discipline | Strong — CHANGELOG 1.0.0 identity desync |
Models: Cursor Grok 4.5 High (HIGH) / Composer 2.5 (MED/LOW). Oven CLI unavailable (npm + GitHub 404); review ran via Task subagents. Judge output: /tmp/review-judge-final.md.
Sent by Cursor Automation: Flatbread PR Review
|
|
||
| ```bash | ||
| pnpm add -Dw @flatbread/proof | ||
| pnpm add -Dw @flatbread/oven |
There was a problem hiding this comment.
severity: BLOCKER — Primary install path is pnpm add -Dw @flatbread/oven, but @flatbread/oven is not on the npm registry (404) and is not a root dep here, so pnpm exec oven fails on a fresh clone. The “install from the Oven repository” fallback also needs a working URL/install recipe (the public Oven repo is not reachable from this environment either).
Minimal fix: Make the documented default a verified install path (git/file/local) until npm publish exists, and do not present the registry one-liner as ready-to-run.
|
|
||
| const CONFIG_PATTERN = /^flatbread\.config\.[mc]?[jt]s$/; | ||
| const DEFAULT_GRAPH_ROOT = '.flatbread-efforts'; | ||
| const DEFAULT_GRAPH_ROOT = '.flatbread-proof'; |
There was a problem hiding this comment.
severity: HIGH (consensus: correctness, coverage, cli) — DEFAULT_GRAPH_ROOT flips .flatbread-efforts → .flatbread-proof with no leftover-tree detection. Repos that only update imports can read an empty graph while old records remain on disk.
Minimal fix: When the resolved root is empty/missing, detect sibling .flatbread-efforts and fail with an actionable migration error (or require explicit proofContent('.flatbread-efforts')). Also assert graph_root === '.flatbread-proof' in missing-config bootstrap tests.
|
|
||
| prog | ||
| .command('effort write <json>', 'Write a validated Effort Graph mutation') | ||
| .command('proof write <json>', 'Write a validated Proof mutation') |
There was a problem hiding this comment.
severity: HIGH (consensus: correctness, coverage) — Commands register only as proof …; former flatbread effort … is gone with no alias or rename hint, so agent scripts fail as unknown commands.
Minimal fix: Register effort aliases that warn and forward to proof, or reject with a structured rename error naming proof; add a spawn test locking that policy.
| export { transformer as transformerMarkdown } from '@flatbread/transformer-markdown'; | ||
| export { transformer as transformerYaml } from '@flatbread/transformer-yaml'; | ||
| export { effortGraphContent } from '@flatbread/effort-graph'; | ||
| export { proofContent } from '@flatbread/proof'; |
There was a problem hiding this comment.
severity: HIGH (consensus: correctness, coverage, cli) — Public facade exports only proofContent; effortGraphContent / @flatbread/effort-graph resolve breaks are untested and have no compat alias.
Minimal fix: Re-export alias or thin migration stub for one cycle (or major-bump with explicit migration text), and assert proofContent present / effortGraphContent absent on the facade.
| { | ||
| "name": "@flatbread/effort-graph", | ||
| "name": "@flatbread/proof", | ||
| "version": "1.0.0", |
There was a problem hiding this comment.
severity: HIGH — Workspace package identity is @flatbread/proof while @flatbread/effort-graph disappears with no shim; callers break at resolve time.
Minimal fix: Add a thin @flatbread/effort-graph stub that re-exports or throws a migration error, and keep CHANGELOG ## 1.0.0 package identity aligned with Unreleased.
| 'The config does not contain a complete effortGraphContent preset.', | ||
| "Import { effortGraphContent } from 'flatbread' and preserve existing content with content: [...(existingContent ?? []), ...effortGraphContent()]." | ||
| 'The config does not contain a complete proofContent preset.', | ||
| "Import { proofContent } from 'flatbread' and preserve existing content with content: [...(existingContent ?? []), ...proofContent()]." |
There was a problem hiding this comment.
severity: HIGH — Bootstrap requirement codes stay EFFORT_BOOTSTRAP_* while CLI/validation flip to PROOF_*. Machine clients following the rename miss bootstrap failures.
Minimal fix: Rename to PROOF_BOOTSTRAP_* (preferred) or document sticky EFFORT_BOOTSTRAP_* as the sole frozen exception and lock it in tests.
| constructor(retryAfterMs = 1000, message = 'Effort graph is locked') { | ||
| super(message, 'EFFORT_GRAPH_LOCKED'); | ||
| constructor(retryAfterMs = 1000, message = 'Proof is locked') { | ||
| super(message, 'PROOF_LOCKED'); |
There was a problem hiding this comment.
severity: HIGH — Machine-readable codes rename EFFORT_GRAPH_* → PROOF_* with no dual-emit/compat map; lock/validation/timeout parsers break silently.
Minimal fix: Dual-publish old codes for one release, or version the error envelope and document the cut; add one assertion per Proof*Error.code.
|
|
||
| Notes for the Flatbread release train. Some packages also keep their own | ||
| changelog; this file covers the repository as a whole. | ||
|
|
There was a problem hiding this comment.
severity: HIGH (consensus: correctness, docs, release) — Frozen ## 1.0.0 still names @flatbread/effort-graph and a DAG-runner @flatbread/proof, contradicting Unreleased and the post-rename manifest.
Minimal fix: Rewrite the 1.0.0 “first time on npm” list to @flatbread/proof (memory) + @flatbread/explorer, drop @flatbread/effort-graph, and note Oven as external — or mark 1.0.0 historical-only with a clear banner.
There was a problem hiding this comment.
CI Root Cause
Status: third-party-failure
Failing checks:
- integration-nextjs (20.x, windows-latest):
pnpm install --frozen-lockfilefailed —sharp@0.31.3prebuild-installsocket hang up, thennode-gyp rebuildfailed (Could not find any Visual Studio installation to use/ VS 18unknown version "undefined")
Evidence:
- Job never left install; no Next.js integration steps ran.
- libvips vendor archive downloaded and passed integrity check; failure was the sharp native prebuild download (
prebuild-install warn install socket hang up), then compile fallback. - Sibling matrix cells on the same SHA (
9f27b40) passed install and their jobs, includingintegration-nextjs (22.x, windows-latest),integration-sveltekit (20.x, windows-latest), and other nextjs OS/Node cells. sharp@0.31.3is already present on parent/main lockfile paths; this PR did not introduce a new sharp install contract that explains a Windows-only install failure.- Prior automation note on this PR covered a different check/SHA (
build (22.x, ubuntu-latest)on6ddd90e9) with a Linux libvips socket hang up — not the same failure.
Resolution steps:
- Re-run the failed
integration-nextjs (20.x, windows-latest)job (or the whole Pipeline workflow) on commit9f27b4017922b046e42fb0ff715951d390b93fe0once GitHub Releases / prebuild hosting is healthy. - No branch code change is required for this failure.
- If Windows installs keep falling back to
node-gypafter prebuild hang-ups, treat it as runner/network flakiness (VS 18 detection onwindows-latestmakes the compile fallback brittle); retry rather than changing product code.
No code changes were made because this failure is not caused by the branch.
Sent by Cursor Automation: Flatbread - Fix CI


Switch the memory package, CLI, types, and docs to Proof. Point remaining DAG-runner mentions at Oven.
Co-authored-by: Cursor cursoragent@cursor.com
Depends-On: #242