Skip to content

fix(memory): show a write in the wiki and the vault mount right away - #69

Merged
arthware-dev merged 2 commits into
mainfrom
fix/vault-write-propagation
Aug 4, 2026
Merged

fix(memory): show a write in the wiki and the vault mount right away#69
arthware-dev merged 2 commits into
mainfrom
fix/vault-write-propagation

Conversation

@arthware-dev

@arthware-dev arthware-dev commented Aug 4, 2026

Copy link
Copy Markdown
Contributor

A committed page was only visible once the curator's next poll tick projected it, so an agent could tick an item off, read the page back, and find its own work missing.

Writes now ask the curator to project them and wait briefly. The curator stays the projection's only writer (ADR-011): writers ask, they never mirror. A projection that has not caught up in time reports as a delay, never a failed write.

Also bounds the curator's failed-rebuild retry: the window doubles per consecutive failure up to an hour, and the log says how many attempts failed and when the next is due.

A committed page only became visible once the curator's next poll tick
projected it, so an agent could tick an item off, read the page back to
check itself, and find its own work missing.

Every write now asks the curator to project it and waits briefly. The
curator stays the projection's only writer: writers ask, they never
mirror. A projection that has not caught up in time is reported as a
delay ("the wiki and the vault mount catch up shortly"), never as a
failed write.
With the AI endpoint down, the curator retried the same rebuild on every
quiet window, indefinitely, printing a line each time that looked like a
healthy heartbeat. Observed running for hours.

The gap now doubles with each consecutive failure up to an hour, and the
log says how many attempts failed and when the next one is due. Source
mirroring is untouched: it stays undebounced, so the wiki and the vault
mount keep receiving new pages while generation is down.
@arthware-dev

Copy link
Copy Markdown
Contributor Author

Verified on the demo rig with all changes live after stack restart memory:

15:58:06.401  [curator] mirror-now trigger received
15:58:06.917  Done rebuilding in 85ms          (Quartz)

2.2s from stack memory topic camping todo add to a re-rendered wiki, against up to a 30s poll before.

The lag path fired on its own when a later write landed mid-rebuild (a real rebuild took 2m14s), printing:

Wrote family/camping/todos.md (by homer)
  REMOVED 1: Restart propagation check
  The wiki and the vault mount catch up shortly.

Commit reported as done, delay reported as a delay.

Side finding: the Quartz chokidar watcher does fire across the macOS bind mount, so no CHOKIDAR_USEPOLLING is needed.

Full non-integration suite: 2437 passed, 8 skipped, 0 failed. ruff clean.

Not built, worth follow-ups:

  • Curator logs live only in container stdout and die on recreation. A last-rebuild-error file beside the shas it already persists, surfaced in stack list.
  • No AI endpoint reachable — set up AI with 'stack up ai' prescribes the wrong remedy under provider = "external".
  • Benign per-cycle DEBUG noise (git show failed: ... 'index.md', brain git diff failed:).

@arthware-dev
arthware-dev merged commit bd57ffe into main Aug 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