The plugin-side alternative to server-side drift flagging (decision #2707): when the file being edited is itself a recorded snippet's location, the write-path hint switches from "reuse this" to "snippet #N records this file — updating the record is part of the edit (update_snippet / verify_snippet)".
Server: build_write_path_hint renders exact-path hits as the SYNC class (first, unscored), returns sync_note_ids, and measures them under their own note_usage source write_path_sync — the pull-through number that says whether edit-time sync actually happens.
Dedup audit: sync and reuse ids live on separate per-session channels (exclude_sync_ids / exclude_ids; .sync.ids / .ids in the hook), so an early reuse hint can no longer silence the later sync nudge.
Plugin 0.1.31: hook sends/records the second channel; reusing-code skill gains the "[records this file] is a duty, not a menu" bullet; README + Settings copy describe the two framings.
The plugin-side alternative to server-side drift flagging (decision #2707): when the file being edited is itself a recorded snippet's location, the write-path hint switches from "reuse this" to "snippet #N records this file — updating the record is part of the edit (`update_snippet` / `verify_snippet`)".
- Server: `build_write_path_hint` renders exact-path hits as the SYNC class (first, unscored), returns `sync_note_ids`, and measures them under their own `note_usage` source `write_path_sync` — the pull-through number that says whether edit-time sync actually happens.
- Dedup audit: sync and reuse ids live on separate per-session channels (`exclude_sync_ids` / `exclude_ids`; `.sync.ids` / `.ids` in the hook), so an early reuse hint can no longer silence the later sync nudge.
- Plugin 0.1.31: hook sends/records the second channel; `reusing-code` skill gains the "[records this file] is a duty, not a menu" bullet; README + Settings copy describe the two framings.
CI green on 3162332 (run 3825).
🤖 Generated with [Claude Code](https://claude.com/claude-code)
A snippet recorded AT the exact file being edited is not a reuse
suggestion — it IS the record of the file being changed. The write-path
hint now renders those as their own SYNC class: 'snippet #N records this
file — updating the record is part of the edit (update_snippet /
verify_snippet)'. Nearby and semantic hits stay the reuse menu.
The two classes dedup on separate per-session channels (exclude_ids vs
exclude_sync_ids, .ids vs .sync.ids in the hook), so a reuse hint shown
early in a session can no longer silence the record-sync nudge when the
recorded file itself is edited later. Sync surfacing is measured under
its own note_usage source (write_path_sync) — its pull-through rate is
the scoreboard for whether edit-time sync actually happens, per decision
#2707 (no forge connection; records stay current in the session that has
the context). Plugin 0.1.31.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
The plugin-side alternative to server-side drift flagging (decision #2707): when the file being edited is itself a recorded snippet's location, the write-path hint switches from "reuse this" to "snippet #N records this file — updating the record is part of the edit (
update_snippet/verify_snippet)".build_write_path_hintrenders exact-path hits as the SYNC class (first, unscored), returnssync_note_ids, and measures them under their ownnote_usagesourcewrite_path_sync— the pull-through number that says whether edit-time sync actually happens.exclude_sync_ids/exclude_ids;.sync.ids/.idsin the hook), so an early reuse hint can no longer silence the later sync nudge.reusing-codeskill gains the "[records this file] is a duty, not a menu" bullet; README + Settings copy describe the two framings.CI green on
3162332(run 3825).🤖 Generated with Claude Code