Harden safe deletion fingerprints #58
No reviewers
Labels
No labels
area:ci
area:docs
area:engineering
area:framework-fp
area:test-coverage
dogfood:fn
dogfood:fp
dogfood:friction
dogfood:tp
phase:b
phase:c
severity:critical
severity:high
severity:low
severity:medium
source:deepseek-v4-pro
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
pdurlej/fallow-py!58
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "codex/deletion-fingerprint-safety"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Canary Context Pack
Product story
Agents should never delete code from stale evidence.
safe_to_removepreviously returned unknown fingerprints as ordinarymanual_onlyclassifications, which made "not found in current analysis" indistinguishable from "current low-confidence finding".What changed
safe_to_removenow returns a structured result:classifications: one classification per requested fingerprintunrecognized: requested fingerprints not present in the current analysisClassificationincludesrecognized: bool, defaulting totruefor current findings andfalsefor unknown fingerprints.manual_onlyin the current pre-ADR-0009 namespace) with a rationale that forbids deletion.cycle_pathevidence so the same cycle does not produce a new fingerprint just because traversal starts from another module.safe_to_removeresponse shape.Why it changed
This is Domain C from the 2026-05-18 fork pack: make the dangerous path boring. Deletion candidates must be based on current, recognized evidence, not stale fingerprints from an older report.
Files touched
mcp/src/fallow_py_mcp/safety.pymcp/src/fallow_py_mcp/schemas.pymcp/src/fallow_py_mcp/server.pysrc/fallow_py/fingerprints.pymcp/tests/test_mcp.pytests/test_fingerprints.pyREADME.mdmcp/README.mddocs/agent-integration.mddocs/schema.mddocs/release-notes/0.3.0a3.mdRelevant context
Runtime evidence
PYTHONPATH=src:mcp/src python3.13 -m pytest -q mcp/tests/test_mcp.py::test_safe_to_remove_classifies_unknown_fingerprints_deterministicallypython3.13 -m pytest -q tests/test_fingerprints.pypython3.13 -m compileall -q src tests mcp/src mcp/tests scripts/dogfoodPYTHONPATH=src:mcp/src python3.13 -m pytest -qPYTHONPATH=src python3.13 -m fallow_py analyze --root . --fail-on warning --min-confidence mediumPYTHONPATH=src:mcp/src python3.13 -m fallow_py analyze --root mcp --fail-on warning --min-confidence mediumgit diff --checkKnown constraints
This branch was developed in a separate git worktree at
/Users/pd/Developer/fallow-python-domain-cbecause other domain forks were active in the primary worktree. Local tests were run with explicitPYTHONPATH=src:mcp/srcso they exercised this branch rather than an editable install pointing at the primary worktree.Explicit out-of-scope
Requested decision
Approve if
safe_to_removenow makes stale fingerprints explicit and cycle fingerprints are stable across rotated cycle paths.Merge blockers
safe_to_removeloses requested fingerprints.New commits pushed, approval review dismissed automatically according to repository settings