Repository navigation
Conversation
…ds (#415) - Core: typed DaemonClient reads for GET /api/v1/memory and /overview. The relative path is never parsed; title and excerpt are dropped unless the producer classified the entry and said no reveal is required. Missing counts stay unknown and missing capabilities read as absent. - TUI: a Memory inspector page between Research and Views. Rows show the familiar id as given and unverified, the opaque reference, source and the producer's check label marked not attested. Offline, update-required and failed reads say so with no disk fallback. /memory is named as Local instructions. No reveal, selection or mutation. - CLI: the daemon is read off the UI thread at most every 10 s, only while the Next Memory page is open; closing it drops the snapshot and any late answer. - Tests: adapter canaries and fake-socket reads, snapshot classification, render tests, poller tests, tmux case 10 (offline, canary files on disk never shown), and an opt-in live-daemon test.
…t/415-memory-inspector
…ors (#415) - A memory row id must be a UUID. Older daemons derived it from the file name, which would show the title the preview withholds; that shape now reads as update required. - A structured privacy classification is withheld, not a parse failure. - Failed reads show only the HTTP status and error code, never a daemon message, parse error or transport text; the overview is skipped when the list read fails. - Reopening the page waits at least 2 s between daemon reads, so paging back and forth cannot pile up threads. - The live-daemon test needs COVEN_MEMORY_LIVE_TEST=1, refuses ~/.coven and prints only counts. - Stronger tests: a draft is not submitted by Memory-page keys, and a dead read is not respawned at once.
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
12 tasks
…t/415-memory-inspector
This was referenced Nov 2, 2026
Open
4 tasks done
This branch was successfully deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Context
GET /api/v1/memoryand/overview, API contract). The engine's daemon client had no memory methods; that was the [TUI v2][P0] T0: inventory existing capabilities and contracts, and freeze the product/contract baseline #407 "consumer adapter gap".mainas the stack lands.Implementation
crates/core/src/coven_daemon.rs):DaemonClient::memory_listandmemory_overview.pathis never parsed.reveal_required: false. A null, empty or unknown classification, or a null or true reveal, givesWithheld, so no later layer can show, log or export the text.DaemonError::UnsupportedShapeand reads as update required.crates/tui/src/application/memory.rs): Offline, UpdateRequired (a 404 on the list route, or an older row shape), Failed or Loaded. A failure shows only the HTTP status and error code, never a daemon message, parse error or transport text. The overview is skipped when the list read fails.[familiar memory] <familiar id> (unverified)/memoryas Local instructions, a separate engine-local surface.crates/cli/src/main.rs): reads the daemon off the UI thread, only while the Next Memory page is open.DaemonErrorvariant and two new client methods. There are no exhaustive matches onDaemonErroroutside the client. No storage, protocol or command changes.Verification
cargo fmt --all --checkcargo clippy --workspace --all-targets -- -D warningscargo test --workspace: 2922 passed, 0 failed, 53 ignored. The extra ignored test is the opt-in live-daemon test below.SHELL=/bin/bash: 84/84. That includes the new case 10, which has memory files with a canary on disk inCOVEN_HOMEand no daemon running. The page says offline, and the canary and file name never appear. Case 10 is 9/9 here and fails 3 checks on the feat(tui): read-only Next Research page over session search and fetch (#414) #434 base binary.covenv0.4.10 run on a disposableCOVEN_HOMEholding two synthetic entries, one carrying a canary and one carrying prompt-injection text. The real~/.covendaemon was not used. The daemon was stopped and its home removed afterwards.GET /api/v1/memoryreturned the canary in the excerpt withprivacy_classification: nullandreveal_required: null. This is exactly the case that must be withheld.COVEN_MEMORY_LIVE_TEST=1 COVEN_HOME=<disposable> cargo test -p claurst-core --lib live_daemon -- --ignoredreported: rows=2, withheld=2, entries=2, familiars=2, detail=true, mutations=false.python3 scripts/check-secrets.py: this repository has no such script. The diff adds no credentials or private paths; fixtures are synthetic canaries.Independent review
A fresh reviewer read
85112b2. Verdict: changes requested, for one high-severity leak. Resolved in45aae3a:{familiar}-{file stem}as the id, so "Reference" showed the withheld title~/.covenand print rows~/.coven, prints counts onlyAccepted and documented:
Unrelated: one workspace run on #434 after merging #411 showed a single failure that did not reproduce in three reruns.
Risk and Rollback