45 lines
2.7 KiB
Markdown
45 lines
2.7 KiB
Markdown
# Context Manager Task 3 Durable Constraint Fix Report
|
|
|
|
## Status
|
|
- Done
|
|
- Fixed the remaining durable-constraint extraction gaps in the context-manager extractor.
|
|
- Kept the change narrowly scoped and preserved the earlier source-stable subject behavior plus the narrowed ambiguous-scope behavior.
|
|
|
|
## Changes
|
|
1. **Allowed explicit durable file-specific constraints to remain session-scoped in `.pi/agent/extensions/context-manager/src/extract.ts`**
|
|
- Updated `inferConstraintScope()` so branch-local cues still win first.
|
|
- Checked durable session-wide phrasing before falling back to file-path-based branch scoping.
|
|
- This keeps ambiguous file-specific lines branch-scoped while allowing explicit durable lines such as `Avoid touching docs/extensions.md across the whole session.` to resolve to `session`.
|
|
|
|
2. **Expanded the constraint trigger in `.pi/agent/extensions/context-manager/src/extract.ts`**
|
|
- Introduced a shared `CONSTRAINT_RE`.
|
|
- Added support for the spelled-out `do not` form alongside the existing `must`, `should`, `don't`, `avoid`, and `prefer` triggers.
|
|
|
|
3. **Added regression coverage in `.pi/agent/extensions/context-manager/src/extract.test.ts`**
|
|
- Extended the user-constraint scope test with both:
|
|
- `Avoid touching docs/extensions.md.` → `branch`
|
|
- `Avoid touching docs/extensions.md across the whole session.` → `session`
|
|
- Added a dedicated regression test for:
|
|
- `Do not add new LLM-facing tools across the whole session.` → extracted `constraint`
|
|
|
|
## Tests
|
|
- `cd /home/alex/dotfiles/.worktrees/context-manager-extension/.pi/agent/extensions/context-manager && npx tsx --test src/extract.test.ts`
|
|
- Result: 5 tests passed, 0 failed
|
|
- `cd /home/alex/dotfiles/.worktrees/context-manager-extension/.pi/agent/extensions/context-manager && npm test`
|
|
- Result: 16 tests passed, 0 failed
|
|
|
|
## Files Changed
|
|
- Modified: `.pi/agent/extensions/context-manager/src/extract.ts`
|
|
- Modified: `.pi/agent/extensions/context-manager/src/extract.test.ts`
|
|
- Created: `.pi/reviews/context-manager-task3-durable-fix-report.md`
|
|
|
|
## Self-Review Findings
|
|
- The fix is limited to constraint detection and scope inference; no public APIs or ledger merge behavior changed.
|
|
- Source-stable `subject` generation remains untouched.
|
|
- Ambiguous file-specific instructions without explicit durable phrasing still stay `branch` scoped.
|
|
- Explicit durable session-wide wording now correctly overrides file-path presence for constraint scope.
|
|
|
|
## Concerns
|
|
- Constraint extraction remains heuristic-based by design, so contradictory phrasing that mixes branch-local and session-wide cues will still resolve conservatively to `branch`.
|
|
- No additional blocking concerns found after the targeted and full test runs.
|