#4768 "Write-path prior-art route 500s when a nameless search hit carries its excerpt under snippet": _prior_art_line now reads snippet.name only from a dict. Search hits carry their excerpt there as a string, which crashed /api/plugin/prior-art on some edits.
#4769 "Rulings are counted where someone will read them": system_usage_events is now read back.
retrieval_telemetry gains a system_usage block (by source, by System, with no pull-through ratio).
Each System carries usage on the REST list and detail and on MCP get_system.
The Systems UI shows a "rulings shown N×" chip.
The rulings sources are declared as registry points.
CI green on dev (run 7946, after a re-run past a pypi connect timeout).
- **#4768 "Write-path prior-art route 500s when a nameless search hit carries its excerpt under `snippet`"**: `_prior_art_line` now reads `snippet.name` only from a dict. Search hits carry their excerpt there as a string, which crashed `/api/plugin/prior-art` on some edits.
- **#4769 "Rulings are counted where someone will read them"**: `system_usage_events` is now read back.
- `retrieval_telemetry` gains a `system_usage` block (by source, by System, with no pull-through ratio).
- Each System carries `usage` on the REST list and detail and on MCP `get_system`.
- The Systems UI shows a "rulings shown N×" chip.
- The rulings sources are declared as registry points.
CI green on dev (run 7946, after a re-run past a pypi connect timeout).
🤖 Generated with [Claude Code](https://claude.com/claude-code)
#4768 "Write-path prior-art route 500s when a nameless search hit carries
its excerpt under `snippet`": _prior_art_line read item["snippet"] as a
snippet record's field dict, but a search hit carries its matched passage
there as a string. Read the name only from a dict.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
#4769 "Rulings are counted where someone will read them": milestone 444
step 4 wrote system_usage_events and nothing read it.
- retrieval_telemetry gains a `system_usage` block: surfacings and opens by
source, distinct counts, and `by_system` naming the areas most shown.
There is deliberately no pull-through ratio, because rulings travel in full
in the line and opens are the exception.
- usage_for_systems (one GROUP BY) adds `usage` to the REST Systems list and
detail, and to MCP get_system. MCP list_systems is unchanged.
- The Systems UI shows a "rulings shown N×" chip.
- rulings_pre_tool, rulings_write_path and mcp_get_system are now declared
registry points; the registry guard covers their recorders.
- The Systems store merges a PATCH reply instead of replacing the row.
Co-Authored-By: Claude Opus 5.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.
snippet":_prior_art_linenow readssnippet.nameonly from a dict. Search hits carry their excerpt there as a string, which crashed/api/plugin/prior-arton some edits.system_usage_eventsis now read back.retrieval_telemetrygains asystem_usageblock (by source, by System, with no pull-through ratio).usageon the REST list and detail and on MCPget_system.CI green on dev (run 7946, after a re-run past a pypi connect timeout).
🤖 Generated with Claude Code
snippetno longer 500s the prior-art route (#4768)