Repository navigation
feat(file-refs): distinguish unverified file refs from verified-current - #67
Merged
Merged
Conversation
A memory that named an untracked, gitignored or made-up path rendered with no marker at all, which reads exactly like a memory whose file was checked and is current. An agent could take the absence of a warning as confirmation that the memory was still accurate, when in fact nothing was ever checked — worst for the paths most likely to move: new, generated or gitignored files. Keep the throttle and the delivery filter apart, and record what was named rather than only what resolved: - `memory_file_refs.tracked` (append-only migration 012) marks whether a path resolved at HEAD when the memory was written. - `recordFileRefs` now stores every path a note names; unresolved ones are stored with `tracked = 0`. - `findUnverifiedFileRefs` reports those paths per memory. - Read time renders them as a distinct advisory, `ⓘ unverified: <path> (untracked)`, separate from the existing `⚠ may be stale` drift marker. Unchanged: the drift marker and its semantics for tracked files, the output format, and the non-git workspace (no refs are recorded there, so no advisories are emitted). A memory that names no path stays markerless — "unverified" on every convention or decision memory would be noise. Refs #66
|
@Warma10032 is attempting to deploy a commit to the vignesh's projects Team on Vercel. A member of the Team first needs to authorize it. |
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.
What this changes
A memory that named an untracked, gitignored or made-up path used to render with no marker at all — exactly like a memory whose file was checked and is current. A reader could take the absence of a warning as confirmation, when in fact nothing was ever checked.
This records what was named, not only what resolved, and renders the two cases with different advisories.
memory_file_refsgains atrackedcolumn (append-only migration012_add_file_refs_tracked; existing rows are tracked by definition, since every one of them came from a path that resolved).recordFileRefsstores every path the note names. A path git cannot resolve is stored withtracked = 0.findUnverifiedFileRefsreturns those paths per memory.ⓘ unverified: <path> (untracked), separate from the existing⚠ may be staledrift marker.The three states now read differently:
⚠ may be stale: <path> changed since this was writtenⓘ unverified: <path> (untracked)Unchanged
npm run bench:checkreports no drift, and no new snapshot is committed.Tests
recordFileRefsstores every named path and marks which ones git could resolve.findUnverifiedFileRefsreports named-but-unresolved paths, and is empty for a fully tracked memory.formatContextrenders the unverified marker in text and markdown, keeps it distinct from the stale marker, and emits neither for a memory that names no path.npm run ciis green (typecheck + typecheck:bench + tests + build + smoke); 272 tests pass.Refs #66