Repository navigation
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
Reviewed head [P2] Keep session-packet identity separate from stable segment identity The new versioned segment IDs all begin with I reproduced this with the source-extracted
The runtime calls both methods in its normal persistence path. This loses earlier saved analysis/findings, and applyMemoryDelta then skips a finding whose citation was overwritten. Existing displayed answers and run audit records remain intact. Please retain the stable segment citation IDs, but derive the session packet key independently from packet content or another distinct packet identity. A regression test should save two disjoint timestamp/analysis packets for one asset and verify both citations, findings, and evidence-backed memory remain available; also cover a full read followed by a narrow lookup. Checks: reviewed the changed retrieval, model projection, finalization, response, and persistence paths. Five source-extracted timestamp selection checks passed. GitHub currently reports nine successful checks and one skipped deployment check. The reproduction above is mocked code validation, not a Workers integration or live model run; I couldn't rerun the local suite because shell execution stalled. The draft's documented live-model citation/coverage issues were not independently rerun. |
|
Re-reviewed head The earlier packet-overwrite P2 is fixed. Independent source replay now preserves both disjoint retrieval/analysis packets, their findings, and both evidence-backed memories. Full-read → narrow lookup, same-packet replay, cross-run identity, deletion cleanup, and the ten-neighbor defaults also behaved correctly. One new regression remains: [P2] Deduplicate searchable captions before applying the result limit Saving and indexing each distinct packet ID also creates another FTS copy of its captions, because Reproduction with the actual storage/search source and Node SQLite FTS5:
Please retain the distinct packets and findings, but deduplicate search candidates before the limit or maintain one searchable entry per stable excerpt. A regression should repeat an ordinary tool read across runs, then verify another lower-ranked matching passage remains discoverable. Saved Validation: source replay used mocked provider, R2, SDK-history, and billing boundaries, with real SQLite and repository schemas. Separately, Verify #400 passed; its logs confirm 1,616 unit tests and all 45 session-evidence integration tests, including both new packet-retention regressions. No live model or production run was performed; the draft's documented semantic citation/coverage limitations remain outside this re-review. |
|
Re-reviewed head The search-crowding P2 is fixed. Independent replay of 25 cross-run reads followed by a lower-ranked matching passage now returns both 0s and 5s exactly once, with clean indexes and seeded legacy duplicate rows. The previous head still reproduces the missing 5s result. All 26 lookup records remain available, and new canonical captions create no packet-owned FTS copies. The earlier packet-overwrite fix also remains intact. Additional checks passed for:
I also reviewed the asynchronous finalization/recovery changes: run state and evidence generation are rechecked after citation hydration, before the synchronous answer/memory commit. Validation: isolated replay of the repository source with real Node SQLite FTS5 and mocked provider, R2, SDK-history, and billing boundaries. I did not rerun the full local suite. Verify #402 passed; its logs confirm 1,616 unit tests and 359 Workers integration tests, including 49 session-evidence, 83 runtime, 25 memory-updater, and 85 catalog tests. No live model or production run was performed. The draft's documented live summary/citation-quality limitations remain outside this review. |
|
Re-reviewed head [P2] Exclude omitted captions from search candidates before the limit The new exact-segment size filter makes captions over 16,000 characters unavailable as evidence, but transcript indexing still uses legacy chunk mode. Those captions therefore retain searchable 2,000-character chunks with distinct IDs. They can fill the 20-candidate limit, after which every selected candidate resolves to an omitted segment and is discarded. The search returns no packets, including no oversized-caption warning, even when an ordinary matching caption is available. Reproduced using the actual storage/search source and Node SQLite FTS5:
Please exclude unresolvable segments before applying the candidate limit, or continue collecting candidates after skipped ones, while preserving historical chunk offsets and the source-size cap. Cover both newly indexed transcripts and existing legacy index rows. Other independent replay checks passed: passive citation reads and shared active/passive reads; targeted deserialization and memory validation; current/earlier-turn evidence reuse; storage-error fallback with 0 and 50 input warnings; unknown-only research citation rejection; cancellation, generation fencing, and duplicate-finalization protection. The earlier packet-retention and repeated-read search fixes remain intact. Validation used source-extracted code, real SQLite, and mocked provider, R2, SDK-history, and billing boundaries. The full local suite was not rerun. Verify #404 passed; its platform logs confirm 1,620 unit tests and 369 Workers integration tests. No live model or production run was performed; the draft's documented semantic citation/coverage limitations remain outside this review. |
|
Re-reviewed head The oversized-caption search P2 is fixed. Independent SQLite replay reproduces the empty result on the previous head and returns the usable matching caption on this head. An actual old-to-new index migration also passes, retains original packets/assets/blobs and historical citations/memory, and stays stable after reopening. One new regression remains: [P2] Validate literal boundaries in the original source, not only the cropped quote The new literal validation checks that the quote is a source substring, but checks the version/date boundaries only inside that model-supplied quote. Cropping the quote can therefore turn part of a larger source literal into an apparently supported complete value. Independent base/head analyst reproduction:
The same cropped-quote bypass accepts year Other checks passed: earlier packet-retention/search-deduplication cases; the 16,000/16,001-character boundary and empty-segment identity; persisted untimed lookup status; mixed metadata/transcript declared and inline citation scopes; video-duration bounds; frozen-outline overview repairs; and the intentional DeepSeek text/GLM visual configuration. Validation used extracted repository source, real Zod and SQLite, with mocked generation, provider, storage and SDK boundaries. The full local suite was not rerun. Verify #407 passed; its logs confirm 1,649 unit tests and 372 Workers integration tests, including 56 session-evidence tests. No live model or production run was performed. The documented focused React warning and broader semantic citation/coverage limitations remain outside this review. |
…ptions Unreadable transcripts are recorded in session_search_index_failures and sorted behind untried versions, so missing blobs cannot hold every four-slot indexing batch. Window search hits now return the shortest caption run covering the query terms instead of all ten captions.
|
Re-reviewed head [P2] Deduplicate resolved matches before enforcing the search limit The new windows have different starting IDs but can resolve to the same matching caption. The SQL query limits those starting IDs to 20, then covering-span reduction and Base/head reproduction: save seven 15-caption transcripts, each with [P2] Preserve all FTS query terms when trimming a window The JavaScript tokenizer retains underscores, while the default FTS5 tokenizer splits them. Minimal base/head reproduction: captions The existing cropped-literal P2 also remains: replay still accepts Other checks passed: actual format-2-to-3 migration with zero blob reads and unchanged source/packet/memory records; exact three-caption results across a window boundary with one blob read; four-read passive repair batches; failure rotation across reopening, recovery and unrelated-asset deferral; deletion fencing; empty/oversized-caption gaps; and previous packet-retention/search-deduplication regressions. One migration scale caveat: format-2 conversion still rewrites every asset synchronously during construction. A local SQLite benchmark with 100 transcripts × 1,000 captions took about 21.6 seconds inside one transaction, issuing 120,632 SQL calls with zero blob reads. That is a local scaling observation, not measured Workers latency; bounding this conversion would avoid an unbounded first-access pause. Validation used extracted repository source, real Zod and Node SQLite FTS5, with mocked provider, R2, SDK and generation boundaries. The full local suite was not rerun. Verify #409 passed; platform-check logs confirm 1,649 unit tests and 377 Workers integration tests, including 61 session-evidence tests. No live model, production run or deployment was performed. |
Over-fetch FTS candidates and stop at 20 distinct results after trimming, so overlapping windows that resolve to the same captions no longer crowd other matches out of the limit. Window trimming now splits words like the unicode61 index (underscore is a separator) and returns the whole window whenever it cannot account for every query term.
|
Re-reviewed head The overlapping-window crowding reproduction is fixed: independent base/head replay returns seven videos before and all eight now. The original [P2] Preserve quoted-token phrase semantics when trimming
Minimal end-to-end base/head reproduction:
Please make candidate matching and trimming use the same token/phrase constraints, or retain the full candidate when that equivalence cannot be established. This is a remaining tokenizer-consistency case despite the original underscore example passing. [P2] Cache transcript read results across search pages The new cache tracks individual citation IDs, but each new page can request different IDs from the same transcript. Independent reproduction: index one transcript containing 1,000 one-second Please cache the version's read result, including an unavailable result, for the search operation while retaining deletion fencing and pagination. Add a per-version read-count assertion, rather than only checking that citation IDs are not requested twice. The cropped-literal P2 also remains unchanged: current-head replay still accepts Other checks passed: 18/19/20-video refill and the twenty-result cap with 21/25/45 videos; continuation past unavailable-only pages; unique resolved IDs; whole-session and selective deletion during a later page; cross-boundary exact captions; empty/oversized gaps; packet retention, version isolation, evidence-backed memory, and in-flight deletion fencing. Validation used extracted repository source, real Zod and Node SQLite FTS5, with mocked provider, R2, SDK, billing and generation boundaries. The full local suite was not rerun. Verify #411 passed for this exact head; platform-check logs confirm 1,649 unit tests and 385 Workers integration tests, including 69 session-evidence tests. No live model, production run, code change or deployment was performed. The draft's broader semantic citation/coverage limitations remain outside this review. |
Search runs one ranked query capped at 200 candidates and resolves it in batches of twenty, instead of re-running the FTS query per page until exhaustion. Each transcript is read at most once per search through a shared read cache, with bounded concurrency. An unreadable blob is skipped instead of failing the search; if it filled the candidate limit its rows are excluded and the query reruns, at most four times. Indexing and search now report unreadable transcripts as unavailableTranscripts, separately from pendingTranscripts, so the model is no longer told to search again for sources that cannot be read. Search also checks cancellation between batches.
Window trimming now asks SQLite where each query term matched, using FTS5 highlight() on the window row, and maps those positions back to captions. The returned run is the shortest that contains a complete instance of every term, so Unicode punctuation, non-English text and phrases that cross caption boundaries follow the index tokenizer instead of falling back to whole ten-caption windows. A one-word query containing an underscore is a phrase and now searches windows, so cross-caption matches are found. Query tokens keep combining marks, so Devanagari words are not split at vowel signs. The per-search read cache remembers failed reads for the whole search but retains at most four successful transcripts; evicted transcripts may be reread. Search still continues until twenty distinct matches or index exhaustion.
|
Re-reviewed head The three previously reported reproductions are fixed:
One related literal-validation gap remains: [P2] Reject build-metadata fragments before treating a version as verified The source-position boundary regex still treats
Actual analyst replay on this head retains literal Please include build-metadata separators in version-token boundary validation and cover both prefix and suffix crops, including the unitless-quantity path. The complete literal Other checks passed: 18/19/20-result refill and the twenty-result cap with 21/25/45 videos; shared repair/resolution reads; failed reads surviving cache eviction; four-read concurrency; storage-error isolation; cancellation; selective and whole-session deletion during later resolution batches; packet retention, version isolation, exact captions, and evidence-backed memory. The successful-read cache is intentionally LRU-bounded to four, so evicted healthy transcripts can still be reread; only failed reads are retained for the entire operation. Validation used actual repository source with real Zod and Node SQLite FTS5, mocking generation, provider, R2, SDK, and billing boundaries. The full local suite was not rerun. Verify #414 passed for this exact head; logs confirm 1,663 unit tests and 397 Workers integration tests, including 81 session-evidence tests. No live model, production run, code change, or deployment was performed. The draft's broader semantic citation/coverage limitations remain outside this review. |
|
Re-reviewed head The previous [P2] Reject dotted named continuations before accepting a version prefix The right-hand boundary still excludes only a dot followed by a digit. A dot followed by a named metadata component is therefore treated as a version boundary:
Actual analyst replay retains this incomplete literal, discards the unitless quantity, and returns Please include dotted named version components in continuation validation while allowing ordinary sentence-ending periods. Cover both direct validation and the duplicated-quantity analyst path. The complete strings Other independent checks passed: repeated quote/value occurrences, fullwidth normalization, existing numeric version crops, date boundaries, complete date literals, unit-bearing measurement retention, mixed invalid-literal/valid-measurement salvage, and measurement conversion/unit rejection. Validation used extracted repository source with real Zod and mocked generation, SDK and billing boundaries. The full local suite was not rerun. Verify #415 passed for this exact head; logs confirm 77 grounding tests, 1,675 unit tests and 397 Workers integration tests. No repository code changes, live-model test, production run or deployment. The draft's broader semantic citation/coverage limitations remain open. |
Problem / Motivation
Transcript citations point to broad windows, and repeated caption metadata makes context expensive. Strict claim limits and measurement-only facts can also truncate explanations or distort software versions.
What changed
Both transcript paths use flat numeric IDs and text. Citations resolve through transcript version and segment ID. Claims have no character cap; source captions retain a 16,000-character safety bound.
Timestamp tools return ten neighboring segments per side. Empty lookups provide citable coverage status. Spoken explanations require timed transcript citations; separate context blocks can cite metadata. The application computes whether a requested time exceeds the reported video duration.
Versions and dates retain complete source values, including build metadata, without dropping measurements. Overview repairs use application-held topic indices, without requiring repeated outline wording. Prose and table citation rules are visible in the schema.
The original transcript remains the citation source. Search preserves phrase support and returns original captions. It fetches further candidates until twenty distinct matches are found or the index is exhausted. Transcript reads are cached across search pages. Caption indexes upgrade locally. Older indexes rebuild in batches of four passive reads; pending work is reported. Source records remain intact.
Deployment
This PR intentionally changes production text roles and final answers to DeepSeek with reasoning disabled. GLM remains for visuals. The next deployment applies that configuration.
Tests
Build, 1,675 unit tests and 397 Workers integration tests passed. Earlier live mixed-source and beyond-end answers passed. Remain draft: broader semantic citation and focused-answer issues remain documented in validation results. Nothing deployed.