Replies: 2 comments
|
Verified against the checkout: both descriptor gates exist exactly as reported |
|
Corroborating your amplifier from a different population, plus one thing I don't see reported in this thread or in #6559 / #6614 — why the cause has been so hard to see.
1. Same two gates, same amplifier, different corpusBefore repair, my refusals fell into four classes (counts are sessions; one session can hit more than one, so they do not sum): unregistered Descriptor v2 is by far the largest class on my machine too (231 of 372), which matches your 34/323 — so this is not an edge case, and it is the class where a relaxed admission gate buys the most. Your second gate ( 2. Not reported yet: the Web banner throws the error object awayEvery reporter in this cluster had to re-derive the cause from disk, because the UI cannot show it. In I only obtained Worth noting the asymmetry: Ask: could the banner (or at least the console) carry a short reason and code? That alone would turn this class from archaeology into a one-line bug report, and it is independent of the migration decision. 3. On your ask 2 — a working containment patch is smallIn The upstream trade-off is exactly the one #6614 raised in the other direction: a loud refusal is visible, a silent skip is not. If this is made fail-soft, it probably wants a counter or a surfaced warning — otherwise "one bad log costs 100% of search" becomes "some sessions are quietly missing from search", which is harder to notice and to report. Cross-reference: I added the unregistered- |
Uh oh!
There was an error while loading. Please reload this page.
Bug report — session search fails entirely when any session contains a released
subagent/descriptorv2 event. (Issues are disabled on this repo, so filing here.)Environment
0.1.5-rc.2(checkoutdsh-v0.1.5-rc.2-139-gc291e7961a), macOSsession-persistence-jsonlbackend + persistentsession-query-sqliteindex (openAt: startup)Symptom
session_search/session_event_searchfail with the model-safe messagesession history storage is unavailable(codeSESSION_QUERY_PERSISTENCE_FAILED), whilesession_trace/session_event_tracework on the same session. The Web sidebar search degrades to "content search unavailable, showing name matches" — same cause.persisted_sessionsstays at 0 rows, because indexing requires a successful cold read.Root cause — two independent gates
packages/session/session-format-v0-to-v1/src/validation.ts(L198):packages/session/session-format-v0-to-v1/src/payload-validation.ts(L956,subagentDescriptorValue):Relaxing only gate 1 surfaces gate 2's error (
version must be one of 3).A real v2 event carries
{version:2, mode:"continuable", provider:"spawn", label, agentProvider, agentModel}— required['mode','version','provider']plus optional keys all drawn fromRELEASED_V0_EVENT_DISPOSITIONS['subagent/descriptor']. So the payload validates correctly once admitted; the remaining field checks are version-independent.Amplifier (the more consequential defect)
packages/session-query/session-query/src/corpus.tsinspectPersisted(~L272-293) only special-casesSessionPersistenceCorruptionErrorand rethrows everything else asSESSION_QUERY_PERSISTENCE_FAILED. There is no per-session skip or partial-result path, andsession-query-sqlite's_observeStablebehaves the same way. Net effect: one unreadable artifact fails the whole search. In our workspace, 34 of 323 sessions (10.5%) were unreadable due to this single format issue, and that cost 100% of search.Cold-read sweep evidence (323 sessions): 289 readable / 34 failing, all with signature
SessionFormatUnsupportedError: subagent/descriptor {seq} uses unsupported descriptor version 2(23x seq 6, 10x seq 0, 1x seq 50393).Questions
Local workaround we are running (for reference, not a patch submission)
Accepting v2 in both gates (2 files, +13/-2): the previously failing session cold-reads with all 157 events and header intact, descriptor data preserved verbatim (
version: 2intact — thesource v0 artifact remains unchangedcontract holds, originals are not rewritten); full sweep becomes 323/323 readable, 0 failures;session-format-v0-to-v1+session-querysuites pass 443/443. Happy to open a PR if a maintainer prefers that over a local downstream patch.All reactions