Repository navigation
⚠️ The library warns a writer when a resolver settles nothing or a scene lists someone twice - #142
Open
ebigunso wants to merge 5 commits into
Conversation
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…/2026-09-22/write-warnings Co-Authored-By: Codex <noreply@openai.com>
…/2026-09-22/write-warnings Co-Authored-By: Codex <noreply@openai.com>
There was a problem hiding this comment.
Copilot review overview
🟡 Changes recommended
The claimed prepare-time warnings are not implemented; correct the contract or add that behavior.
Get a fresh assessment by requesting another Copilot review.
Review effort: Balanced
Findings: 1
Open (1)
What changed in this PR
Adds non-blocking validation warnings for unrelated resolver links and duplicate scene participants without changing storage or recall behavior.
Changes:
- Adds structured warning variants and validation logic.
- Adds integration coverage and documentation.
- Records implementation-plan completion.
| File | Description |
|---|---|
src/usecases/write_planning.rs |
Emits the new validation warnings. |
src/memory.rs |
Tests warning propagation and persistence behavior. |
src/domain/write_validation.rs |
Defines typed warning variants. |
README.md |
Documents warning behavior. |
docs/coding-agent/plans/completed/v0-2-write-warnings-plan.md |
Records plan completion. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
|
|
||
| ### Write warnings | ||
|
|
||
| A valid write can carry warnings. Read each candidate's `warnings` in the validations returned by `validate_plan`, or in `RememberOutcome.diagnostics.validations` after `remember` or `commit`. Each warning has a `kind` tag and identifies the affected memories or participant key; `candidate_index` and `candidate_kind` identify the candidate. The same warnings are also projected into `diagnostics.messages` with warning severity and the code `WritePlanValidationWarning`. Warnings neither refuse a write nor change what is stored. |
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.

The write-warnings plan's one task, stacked on #140.
At prepare or validate_plan time, without refusing or rewriting anything (the scene is stored as given), the library now warns:
Warnings use the kind tag the result already carries; no new public type, no configuration, no added graph read (the check uses what validation already fetched), and no change to what is stored or recalled: every retrieval outcome and stored link set equals the parent, with exactly one link per distinct key.
Evidence: Codex Tier D approved at
e1ff33e(nine-case observer red at the parent, green at the tip, links and outcomes equal; 458 tests); Claude Tier A approved with two small changes, applied at0d6502a(the warning states its consequence; a redundant test block removed); orchestrator gates pass. This task changes no recall, so its measurement item is an explicit exemption under the measurement rule.🤖 Generated with Claude Code