Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
294 commits
Select commit Hold shift + click to select a range
1f00403
test(browser-capture): pin export-wins title coalescing, not stale br…
Sinity Jul 29, 2026
e4d0715
fix(sources): read camelCase compactMetadata, add micro_compaction event
Sinity Jul 29, 2026
a0db104
perf(storage): stop joining sessions when nothing filters on it
Sinity Jul 29, 2026
cebb70e
feat(sources): add three Claude Code sidecar/event types, extend usag…
Sinity Jul 29, 2026
d233dce
chore(beads): export before merge
Sinity Jul 29, 2026
a98ca15
Merge branch 'worktree-agent-a1440c7e55b2b24a5' into feature/chore/pr…
Sinity Jul 29, 2026
98996d4
Merge branch 'worktree-agent-a73601249e0a08f56' into feature/chore/pr…
Sinity Jul 29, 2026
e793e6d
feat(sources): capture Claude AI web tool_use evidence and conversati…
Sinity Jul 29, 2026
c14b400
Merge branch 'worktree-agent-acdc97dbfb9cf3928' into feature/chore/pr…
Sinity Jul 29, 2026
4d2ce2d
Merge branch 'worktree-agent-aa0f73de13ea73e19' into feature/chore/pr…
Sinity Jul 29, 2026
6cb71b7
test: type the payload subscripts the codex and hermes lanes added
Sinity Jul 29, 2026
8ef10e7
chore(beads): export after batch merge
Sinity Jul 29, 2026
6c23385
feat(schemas): emit per-field first/last-seen at schema generation
Sinity Jul 29, 2026
546a35d
feat(schemas): add drift sentinel's fourth classification + schema-vs…
Sinity Jul 29, 2026
f8f4f6e
Merge branch 'worktree-agent-ab49ca496d6bd2902' into feature/chore/pr…
Sinity Jul 29, 2026
de8717a
feat(sources): acquire Codex threads/spawn-edges as typed evidence
Sinity Jul 29, 2026
8d70814
Merge branch 'worktree-agent-ad5724f037a4abd8e' into feature/chore/pr…
Sinity Jul 29, 2026
9acd489
refactor(daemon): decouple census throughput from writer-hold duration
Sinity Jul 29, 2026
80b67bf
Merge branch 'worktree-agent-ad04be2fa8569ea14' into feature/chore/pr…
Sinity Jul 29, 2026
a2ab84f
fix(test): mock post-ingest augmentation/verify in demo --wait CLI tests
Sinity Jul 29, 2026
da58ad7
Merge branch 'worktree-agent-a04500ef2837c0d2b' into feature/chore/pr…
Sinity Jul 29, 2026
a3bb2d6
chore(beads): record the per-PR-skip pattern behind both master failures
Sinity Jul 29, 2026
5dde0c0
docs: regenerate topology projection for the codex-state module
Sinity Jul 29, 2026
2dd9a63
fix(storage): retire session_provider_usage_events.payload_json into v45
Sinity Jul 29, 2026
1dbdbdb
docs(design): record reverted per-tick candidate-cache attempt (item 5)
Sinity Jul 29, 2026
6a125f1
chore(beads): export before merge
Sinity Jul 29, 2026
daed223
Merge branch 'worktree-agent-ae535d33cefc69bc1' into feature/chore/pr…
Sinity Jul 29, 2026
528c5a7
chore(beads): export
Sinity Jul 29, 2026
9b37431
feat(sources): join Claude Code tool-results sidecars to their tool_r…
Sinity Jul 29, 2026
399c674
chore(beads): export
Sinity Jul 29, 2026
f4c050a
Merge remote-tracking branch 'origin/feature/chore/promote-schemas-an…
Sinity Jul 29, 2026
5ebfc0a
fix(cli): route analyze tools text output through typed ToolCountRowP…
Sinity Jul 29, 2026
e858db5
fix(storage): address review findings on census and generation pruning
Sinity Jul 29, 2026
5948ea5
chore(beads): export
Sinity Jul 29, 2026
40caeb9
Merge branch 'worktree-agent-a6730c39cc2369360' into feature/chore/pr…
Sinity Jul 29, 2026
30c9ff8
docs: regenerate topology after merging the sidecar-acquisition module
Sinity Jul 29, 2026
332de8e
Merge branch 'feature/chore/promote-schemas-and-wire-gates' of https:…
Sinity Jul 29, 2026
34180f9
Merge branch 'worktree-agent-acd6757a7a8b152f2' into feature/chore/pr…
Sinity Jul 29, 2026
ab2fad8
docs: register the tool-result sidecar content-hash boundary
Sinity Jul 29, 2026
42b7ef9
chore: export beads and lock after lane merges
Sinity Jul 29, 2026
e0f08af
fix(sources): record claude-ai flags disposition, prefer typed git_br…
Sinity Jul 29, 2026
89afb08
docs(storage): record why semantic frontiers cannot authorise raw rel…
Sinity Jul 29, 2026
59c6ffb
fix(sources): capture Hermes/Gemini-CLI JSON-snapshot wire fields as …
Sinity Jul 29, 2026
aaa9cdd
chore(beads): export before merge
Sinity Jul 29, 2026
c93609e
Merge branch 'worktree-agent-a4d7428c3541c30d9' into feature/chore/pr…
Sinity Jul 29, 2026
5caf5ea
chore(beads): export before merge
Sinity Jul 29, 2026
48b5922
Merge branch 'worktree-agent-a796fb2b17960dafa' into feature/chore/pr…
Sinity Jul 29, 2026
410a63d
Merge branch 'feature/chore/promote-schemas-and-wire-gates' of https:…
Sinity Jul 29, 2026
3178db3
chore(beads): record the block-metadata persistence gap decision (9x22)
Sinity Jul 29, 2026
c0fcecb
feat(sources): wire tool-result sidecar join into Claude Code ingest
Sinity Jul 29, 2026
fc522fb
fix(sources): route Claude AI web-tool evidence through session_events
Sinity Jul 29, 2026
bc46e0b
Merge branch 'feature/chore/promote-schemas-and-wire-gates' of https:…
Sinity Jul 29, 2026
85de860
fix(storage): normalize repo identity in the write-path repo-edge writer
Sinity Jul 29, 2026
3349d96
feat(insights): add session structural label projection
Sinity Jul 29, 2026
0f357fa
fix(sources): downgrade Codex sidecar titles that echo the first prompt
Sinity Jul 29, 2026
e2b257d
chore(storage): add order_check DDL helper for future relationship CH…
Sinity Jul 29, 2026
d133c01
Merge branch 'feature/chore/promote-schemas-and-wire-gates' of https:…
Sinity Jul 29, 2026
6d476bd
fix(sources): read ChatGPT execution status into tool_result_is_error
Sinity Jul 29, 2026
cb48dcd
fix(sources): read Codex's unified-exec text envelope as structure
Sinity Jul 29, 2026
3165b57
test(sources): type the execution_output test helper's return value
Sinity Jul 29, 2026
486f937
perf(storage): index raw_sessions.blob_hash for blob-GC reference checks
Sinity Jul 29, 2026
497ad24
chore(beads): merge export
Sinity Jul 29, 2026
05cc507
Merge branch 'feature/chore/promote-schemas-and-wire-gates' of https:…
Sinity Jul 29, 2026
3895bbc
chore(beads): file the Codex tool_path/FTS invisibility finding
Sinity Jul 29, 2026
730ec83
Merge branch 'worktree-agent-aae3782a8241023ce' into feature/chore/pr…
Sinity Jul 29, 2026
04494c6
fix(sources): stamp title_source for Claude AI export/design-chat titles
Sinity Jul 29, 2026
3e03f19
chore(beads): export before titles merge
Sinity Jul 29, 2026
45ec816
Merge branch 'worktree-agent-aa588116fb3300607' into feature/chore/pr…
Sinity Jul 29, 2026
b8ac74f
fix(sources): extract the operated path from standalone apply_patch p…
Sinity Jul 29, 2026
35509be
chore(beads): close a9hx — apply_patch path extraction landed
Sinity Jul 29, 2026
487c9a3
feat(surfaces): expose session_events as a generic read/MCP evidence …
Sinity Jul 29, 2026
3147872
fix(sources): route Hermes reasoning metadata to session_events
Sinity Jul 29, 2026
90cec3a
fix(sources): route Gemini thinking-continuity evidence to session_ev…
Sinity Jul 29, 2026
731a080
fix(sources): route browser-capture block metadata to session_events
Sinity Jul 29, 2026
1c5e98c
docs(sources): document code_parser background-task metadata as non-l…
Sinity Jul 29, 2026
1ff6eb0
chore(beads): export before titles merge
Sinity Jul 29, 2026
77ebda6
fix(sources): route Claude AI web-tool evidence through session_events
Sinity Jul 29, 2026
9bbe4e6
fix(sources): downgrade Codex sidecar titles that echo the first prompt
Sinity Jul 29, 2026
b4a08df
fix(sources): stamp title_source for Claude AI export/design-chat titles
Sinity Jul 29, 2026
e3f83a8
fix(sources): extract the operated path from standalone apply_patch p…
Sinity Jul 29, 2026
c2c8cae
chore(beads): close a9hx — apply_patch path extraction landed
Sinity Jul 29, 2026
c9dd16b
fix(tests): repair synthetic role placeholders for codex/claude-code
Sinity Jul 29, 2026
0638d0b
style: fix pre-existing import-sort violation in test_parsers_codex.py
Sinity Jul 29, 2026
ef8a4c3
chore(daemon): delete daemon_parse_stage_split, always warm off-write…
Sinity Jul 29, 2026
fe0cd45
perf(sources): dedupe parsed content across rebuild pages by blob_hash
Sinity Jul 29, 2026
eab6f9b
refactor(daemon): delete daemon_bulk_rebuild_routing, add rebuild pas…
Sinity Jul 29, 2026
fb69ed0
Merge remote-tracking branch 'origin/feature/chore/promote-schemas-an…
Sinity Jul 29, 2026
7257bd4
fix(archive): stop session_phases/work_events start>end inversion
Sinity Jul 29, 2026
4f9ea00
Merge branch 'worktree-agent-aab06a64d15b66f98' into feature/chore/pr…
Sinity Jul 29, 2026
2fe05ad
chore(beads): close cuxz.10, file 9qq7 mainline variant-selection bug
Sinity Jul 29, 2026
312c0db
fix(storage): key repo identity on the normalized remote, not checkou…
Sinity Jul 29, 2026
35a4a01
feat(storage): expose Codex agent-policy facts through the async repo…
Sinity Jul 29, 2026
a93f339
chore: fix pre-existing format/render drift on shared branch
Sinity Jul 29, 2026
3c9f24c
fix(schemas): restore x-polylogue-semantic-role annotations dropped b…
Sinity Jul 29, 2026
3e39922
wip: hash-order rebuild paging (checkpoint before investigating test …
Sinity Jul 29, 2026
093e618
fix: thread is_active_path through mainline message reads
Sinity Jul 29, 2026
3e2d2d2
fix(tests): repair stale CLI tests bisected to #3079/#3138 (9-11 days…
Sinity Jul 29, 2026
7f0dd13
Merge remote-tracking branch 'origin/feature/chore/promote-schemas-an…
Sinity Jul 29, 2026
4a547a8
chore(beads): file audit findings 8249/bvnz/j1vs/yp5p, close 9qq7
Sinity Jul 29, 2026
2fc376d
fix(cli): stop polylogue.cli/__init__ from importing storage eagerly
Sinity Jul 29, 2026
17bc70f
test(storage): prove content-order rebuild paging dedups first-time d…
Sinity Jul 29, 2026
d24c053
fix(tests): repair rebuild-index Click-8.4 stdout/stderr split fallout
Sinity Jul 29, 2026
52cab0c
chore(tests): regenerate CLI snapshots for legitimate CLI/schema drift
Sinity Jul 29, 2026
aef342f
Merge branch 'worktree-agent-a782629ff00b91e95' into feature/chore/pr…
Sinity Jul 29, 2026
4fafddc
chore(sources): delete live_watcher_parse_stage_split, always warm of…
Sinity Jul 29, 2026
ed721e6
Merge remote-tracking branch 'origin/feature/perf/hash-order-rebuild-…
Sinity Jul 29, 2026
88d4f73
fix(tests): repair 3 daemon test regressions from recent lanes
Sinity Jul 29, 2026
db0f131
fix(cli): copy to the Wayland clipboard and fail loudly when it cannot
Sinity Jul 29, 2026
12a44c6
fix(tests): type the clipboard AppEnv stand-in for mypy --strict
Sinity Jul 29, 2026
ad4d12e
fix(storage): create the archive root before writing the index pointer
Sinity Jul 29, 2026
819e9c0
fix(schemas): make promotion monotonic, restore the packages it narrowed
Sinity Jul 29, 2026
78a265c
fix: skip judge commands in query teaching surface tests
Sinity Jul 29, 2026
a7945e9
perf(pipeline): scale parse workers to the interpreter, delete the in…
Sinity Jul 29, 2026
69e4d13
fix: update retrieval readiness tests to use query tool
Sinity Jul 29, 2026
c0f7e4c
fix: add missing current_node to ChatGPT fixture
Sinity Jul 29, 2026
8b0e4a4
fix(flake): make the free-threaded shell the default devshell
Sinity Jul 29, 2026
5210364
Merge branch 'worktree-agent-ae2bfaa1bea345abb' into feature/chore/pr…
Sinity Jul 29, 2026
726c4b1
test: derive schema versions from lifecycle declarations instead of h…
Sinity Jul 29, 2026
7aebeec
fix(config): declare Config optional fields as class defaults, not ba…
Sinity Jul 29, 2026
c7372de
fix(sources): converge subagent-transcript ArtifactKind on agent_tran…
Sinity Jul 29, 2026
dcd8cc8
fix(tests): add title_ref/title_confidence to lineage-validation fixture
Sinity Jul 29, 2026
11d5406
fix(sources): let agent-name resolve the Claude Code session title
Sinity Jul 29, 2026
ba8fb15
chore(beads): record polylogue-eyij (schema-promotion-audit pre-push …
Sinity Jul 29, 2026
2af3027
test: fix 26 tests by constructing synthetic test data and fixing log…
Sinity Jul 29, 2026
cdc4f29
feat(storage): land the unread-wire batch schema (v46)
Sinity Jul 29, 2026
927daf0
fix(schemas): stop publishing local paths and conversation text in co…
Sinity Jul 29, 2026
70c6c55
fix(storage): satisfy mypy --strict on FileEditRecord.structured_patch
Sinity Jul 29, 2026
8e97782
feat(sources): wire Codex SQLite state acquisition into live ingest
Sinity Jul 29, 2026
bb5b7f2
feat(browser-capture): give BrowserCaptureTurn a typed blocks channel
Sinity Jul 29, 2026
2221c81
chore(beads): record polylogue-4fm3 follow-up (chatgpt.py tool-block …
Sinity Jul 29, 2026
c7d9836
chore(beads): note polylogue-ah21 implementation status and AC breakdown
Sinity Jul 29, 2026
a70bd92
test(sources): prove Codex state-db acquisition through the real inge…
Sinity Jul 29, 2026
45500ab
test(storage): round-trip the unread-wire batch through the real writ…
Sinity Jul 29, 2026
8f869c8
Merge remote-tracking branch 'origin/feature/browser-capture/typed-co…
Sinity Jul 29, 2026
ae88352
Merge branch 'feature/storage/unread-wire-batch' into feature/chore/p…
Sinity Jul 29, 2026
62bde48
fix(sources): prefer typed git_branch over shape heuristic for claude…
Sinity Jul 29, 2026
66334df
chore(beads): record polylogue-0jf4 wiring + polylogue-foee follow-up
Sinity Jul 29, 2026
cfb0e03
chore: clear the four gates blocking every lane's push
Sinity Jul 29, 2026
bdb2e9b
Merge branch 'feature/sources/acquire-sidecars-and-codex-sqlite' into…
Sinity Jul 29, 2026
bde9bf7
feat(sources): read claude-code's typed git_branch, pr-link, file-his…
Sinity Jul 29, 2026
243bfb3
feat(sources): grade session location evidence as directory or reposi…
Sinity Jul 29, 2026
39be54c
chore(beads): record cijx.2/cijx.3 findings and AC disposition
Sinity Jul 29, 2026
3e183c1
Merge branch 'worktree-agent-a8d3d47fe5a8b7b6a' into feature/chore/pr…
Sinity Jul 29, 2026
0013364
fix(sources): put sidecar message linkage in the typed field, not the…
Sinity Jul 29, 2026
f8a9186
style: ruff format after the sidecar linkage fix
Sinity Jul 29, 2026
a432a35
Merge branch 'worktree-agent-a602fcf2fda3be057' into feature/chore/pr…
Sinity Jul 29, 2026
7b13aaa
Merge branch 'fix/artifact-kind-and-lineage-validation' into feature/…
Sinity Jul 29, 2026
b9ba2e2
Merge branch 'feature/parser/sidecar-delegation-outcome-gaps' into fe…
Sinity Jul 29, 2026
a515db2
Merge branch 'worktree-agent-a782629ff00b91e95' into feature/chore/pr…
Sinity Jul 29, 2026
b492200
Merge branch 'worktree-agent-a2955049a192261b8' into feature/chore/pr…
Sinity Jul 29, 2026
4f32fff
feat(sources): populate v46 unread-wire batch fields at parse time
Sinity Jul 29, 2026
4b6ef37
chore: drop imports left unused by the version-derivation refactor
Sinity Jul 29, 2026
6ba5a8a
Merge branch 'feature/parser/populate-unread-wire-fields' into featur…
Sinity Jul 29, 2026
d663f9e
chore(beads): close 8249/eyij/grub/ah21/2qx.4 with verification evidence
Sinity Jul 29, 2026
ed05da8
fix(schemas): resolve real element_kind before merging a promoted clu…
Sinity Jul 29, 2026
091ea71
fix(schemas): match promote --with-samples candidates by the cluster'…
Sinity Jul 29, 2026
331c20d
chore(docs): regenerate topology projection after rebasing onto share…
Sinity Jul 29, 2026
4206cb8
fix(core): make JSON facade backend-agnostic and close msgspec parity…
Sinity Jul 29, 2026
d094ef3
feat(schemas): promote hermes v2 as a verified monotonic superset of v1
Sinity Jul 29, 2026
0ca2dec
feat(schemas): promote gemini-cli v2 as a verified monotonic superset…
Sinity Jul 29, 2026
26a4162
feat(schemas): promote antigravity v2 as a verified monotonic superse…
Sinity Jul 29, 2026
f2447d6
test(cli): regenerate plain-CLI snapshots after schema-version and sy…
Sinity Jul 29, 2026
bbcda45
fix(schemas): stop collapse_dynamic_keys from discarding static keys …
Sinity Jul 29, 2026
a0e8ee2
fix(sources): restore browser-capture block-metadata session_events r…
Sinity Jul 29, 2026
dec636b
fix(sources): route codex code-mode child-result metadata to session_…
Sinity Jul 29, 2026
840b708
fix(sources): route chatgpt block content_type/asset_pointer to sessi…
Sinity Jul 29, 2026
0c563f7
fix(sources): route gemini-cli/hermes block metadata to session_events
Sinity Jul 29, 2026
1998711
docs(sources): document image/document block metadata as deliberately…
Sinity Jul 29, 2026
3d238d7
feat(schemas): promote claude-ai v2 as a verified monotonic superset …
Sinity Jul 29, 2026
bf72c05
fix(core): catch msgspec's raw UnicodeDecodeError in the JSON facade
Sinity Jul 29, 2026
b3ae790
feat(schemas): promote gemini v2 as a verified monotonic superset of v1
Sinity Jul 29, 2026
f2b8492
fix(tests): add the missing result-before-use semantic-card fixture
Sinity Jul 29, 2026
b372a02
test(insights): update the fallback-marker SessionProfile stub for te…
Sinity Jul 29, 2026
ee89dbc
fix(sources): pair chatgpt code-interpreter tool_use/tool_result by t…
Sinity Jul 29, 2026
fa77923
fix(tests): expect TOOL_USE for chatgpt code-interpreter calls in bro…
Sinity Jul 29, 2026
3141c97
fix(tests): profile-qualify the Hermes verification-coverage session …
Sinity Jul 29, 2026
184a4e0
chore(beads): record polylogue-9x22/polylogue-4fm3 implementation trail
Sinity Jul 29, 2026
f4bf205
Merge branch 'worktree-agent-a607ce92271f77dc2' into feature/chore/pr…
Sinity Jul 29, 2026
86e2024
fix(devtools): wire lab policy bead-graph into --lab verify and updat…
Sinity Jul 29, 2026
bdeb6d1
Merge remote-tracking branch 'origin/feature/chore/promote-schemas-an…
Sinity Jul 29, 2026
6c923c5
fix(schemas): admit SendMessage tool_use's to/recipient fields; de-or…
Sinity Jul 29, 2026
f16ff09
fix(schemas): strip a UUID-leaking x-polylogue-values annotation from…
Sinity Jul 29, 2026
bd33da9
feat(schemas): promote chatgpt v2 as a verified monotonic superset of v1
Sinity Jul 29, 2026
2068d29
test(devtools): catch up operation-catalog/mutation-loop allowlists a…
Sinity Jul 29, 2026
0d7a19c
feat(sources): acquire codex patch_apply diffs and turn_context perso…
Sinity Jul 29, 2026
64ef0c6
fix(tests): de-orjson the validate_raw_ids decode-quarantine expectation
Sinity Jul 29, 2026
9def901
fix(mcp): register get_session_events in the facade route catalog; fi…
Sinity Jul 29, 2026
7213c09
feat(sources): make hardcoded parser value-vocabularies checkable aga…
Sinity Jul 29, 2026
01de2af
chore(beads): close gm5v — structuredPatch content lands in v46 file_…
Sinity Jul 29, 2026
bdaa68a
Merge branch 'worktree-agent-a6d396610f6c9a165' into feature/chore/pr…
Sinity Jul 29, 2026
3ac703f
feat(archive): surface stop_reason and tool_result_outcome_unknown_re…
Sinity Jul 29, 2026
24e417b
Merge branch 'worktree-agent-a9fc0533c206c0b79' into feature/chore/pr…
Sinity Jul 29, 2026
4f9e644
fix(tests): repair schema drift in dangling-FTS test fixture
Sinity Jul 29, 2026
71117ef
fix(tests): catch up test_paths allowlist and archive-read mock seam …
Sinity Jul 29, 2026
c5237ca
test(sources): add real multithread stress tests for parse-prefetch c…
Sinity Jul 29, 2026
d248e35
Merge branch 'worktree-agent-a26b015006e105986' into feature/chore/pr…
Sinity Jul 29, 2026
acc17fe
Merge branch 'worktree-agent-a502baa524eac530b' into feature/chore/pr…
Sinity Jul 29, 2026
ac31b14
Merge branch 'worktree-agent-a58632ba76a36e7ad' into feature/chore/pr…
Sinity Jul 29, 2026
e0e1c77
fix(schemas): run the enum-value privacy guard in the publication gate
Sinity Jul 29, 2026
c5050a1
style: ruff fixes for the privacy-guard wiring
Sinity Jul 29, 2026
024cb87
feat(maintenance): split rebuild replay_s into parse-vs-apply timings
Sinity Jul 29, 2026
2fcd4e7
chore(beads): record polylogue-623q parse/apply measurement + m6tp/a7…
Sinity Jul 29, 2026
3e1ae15
Merge branch 'work-623q' into feature/chore/promote-schemas-and-wire-…
Sinity Jul 29, 2026
516bf7e
chore(beads): file 7zp4 (NFC hash gap) and ne6k (empty-session cleanu…
Sinity Jul 29, 2026
5b4145e
fix(storage): stop empty-session repair deleting legitimately-acquire…
Sinity Jul 29, 2026
14a9366
style: ruff fix after the empty-session predicate change
Sinity Jul 29, 2026
04c353e
chore(nix): collapse the flake to the free-threaded build only
Sinity Jul 29, 2026
0a464db
chore(deps): drop orjson, the JSON accelerator that can't ship here
Sinity Jul 29, 2026
182a052
Merge remote-tracking branch 'origin/feature/chore/promote-schemas-an…
Sinity Jul 29, 2026
985cdbb
perf(storage): bulk-build pragma profile for owned inactive index gen…
Sinity Jul 29, 2026
f969cf9
test(sources): pin long multi-session_meta Codex rollout to nonzero m…
Sinity Jul 29, 2026
6e8056f
test(storage): assert rebuild equivalence over content, not wall-clock
Sinity Jul 29, 2026
8a3e8f4
Merge remote-tracking branch 'origin/feature/chore/promote-schemas-an…
Sinity Jul 29, 2026
230cca9
chore(beads): file omsw — sidecar artifacts acquired as independent s…
Sinity Jul 29, 2026
2e56195
feat(insights): wire session_label into ArchiveStore summary reads
Sinity Jul 29, 2026
a1ea385
test(cli): regenerate plain-CLI snapshots for shifted synthetic RNG s…
Sinity Jul 29, 2026
bfd861a
chore(storage): delete unreachable holdout_cohorts module
Sinity Jul 29, 2026
4e6a37f
fix(sources): treat zero-byte JSONL captures as a valid record boundary
Sinity Jul 29, 2026
ea14949
chore(insights): delete unreachable fable_packet module
Sinity Jul 29, 2026
117480f
chore(storage): delete unreachable block_anchor module
Sinity Jul 29, 2026
81f18ea
style: apply ruff format to inherited pre-existing drift
Sinity Jul 29, 2026
851c4f2
Merge remote-tracking branch 'origin/feature/chore/promote-schemas-an…
Sinity Jul 29, 2026
3cabfce
Merge remote-tracking branch 'origin/feature/chore/promote-schemas-an…
Sinity Jul 29, 2026
6064129
fix(schemas): stop the enum-value privacy guard duplicating existing …
Sinity Jul 29, 2026
0de0e0b
Merge remote-tracking branch 'origin/feature/chore/promote-schemas-an…
Sinity Jul 29, 2026
a91db7c
test(devtools): track chatgpt's promoted default schema version in sc…
Sinity Jul 29, 2026
1a29e97
Merge remote-tracking branch 'origin/feature/chore/promote-schemas-an…
Sinity Jul 29, 2026
2ce7dce
test(storage): tolerate new rebuild timing telemetry in equivalence test
Sinity Jul 29, 2026
23fbb6c
test(storage): pin the bulk-build pragma profile's scoping boundary
Sinity Jul 29, 2026
90078b9
Merge remote-tracking branch 'origin/feature/chore/promote-schemas-an…
Sinity Jul 29, 2026
45141b7
fix(devtools): fix two real bugs found while diagnosing the testmon p…
Sinity Jul 29, 2026
02c445c
test(cli): fix stdout/stderr mixing and timing telemetry in maintenan…
Sinity Jul 29, 2026
e39719d
test(pipeline): seed-qualify synthetic corpus prefix to avoid cross-c…
Sinity Jul 29, 2026
73d9781
test(pipeline): use a complete ChatGPT export shape in payload-provid…
Sinity Jul 29, 2026
3aea92d
test: fix two pre-existing test bugs unrelated to today's schema changes
Sinity Jul 29, 2026
2d91453
test(scenarios): update demo-fixture-world expected session timestamps
Sinity Jul 29, 2026
ade7c29
docs(demo-tour): regenerate committed evidence for shifted RNG stream…
Sinity Jul 29, 2026
2c14eac
test(devtools): track chatgpt's promoted default schema version in qu…
Sinity Jul 29, 2026
315762f
fix(archive): declare title_ref/title_confidence in session query dis…
Sinity Jul 29, 2026
d1379b4
test(devtools): read pytest-timeout dependency from dev-common, not dev
Sinity Jul 29, 2026
b29d9a1
test(agent-integration): expect q2. continuation token prefix
Sinity Jul 29, 2026
49845e8
fix(devtools): mark the consolidated write/run/judge/maintenance MCP …
Sinity Jul 29, 2026
7c589cc
fix(devtools): update the MCP roundtrip check to the consolidated too…
Sinity Jul 29, 2026
b2b424b
test(core): keep the identity-key-collapse fixture under the new majo…
Sinity Jul 29, 2026
54f6cab
fix(schemas): apply the two new claude-code ANNOTATION_MAP entries to…
Sinity Jul 29, 2026
70d2a3a
test(coordination): poll for the async fingerprint-triggered refresh
Sinity Jul 29, 2026
88c5079
docs(search): regenerate query-discovery docs for title_ref/title_con…
Sinity Jul 29, 2026
3109f79
Merge remote-tracking branch 'origin/feature/chore/promote-schemas-an…
Sinity Jul 29, 2026
8cf2bfc
Merge remote-tracking branch 'origin/feature/chore/promote-schemas-an…
Sinity Jul 29, 2026
8206855
fix(tests): clear the last two suite failures
Sinity Jul 29, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
Original file line number Diff line number Diff line change
Expand Up @@ -142,9 +142,7 @@ expressions (or a typed AST produced by the production parser) and keep only
the independent planted-fact oracle. A test should look conceptually like:

```python
expected = corpus.facts.session_ids_matching(
origin="codex-session", text_token="needle", min_messages=7
)
expected = corpus.facts.session_ids_matching(origin="codex-session", text_token="needle", min_messages=7)
assert await run_repository_query(expression) == expected
assert run_cli_query(expression).session_ids == expected
assert await run_http_query(expression) == expected
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -133,7 +133,7 @@ from polylogue.annotations.importer import AnnotationBatchImportRequest
request = AnnotationBatchImportRequest(
jsonl=jsonl_text,
batch_id="stable-run-id",
schema_id="seed.activity", # or an operator-promoted archive-local id
schema_id="seed.activity", # or an operator-promoted archive-local id
schema_version=1,
target_ref="session:...",
source_result_ref="result-set:...",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -376,8 +376,7 @@ try:
recipe_hash_sql = f"X'{recipe.recipe_hash.hex()}'"
output_hash_sql = f"X'{recipe.output_contract_hash.hex()}'"
desired_key_sql = (
"polylogue_embedding_derivation_key("
f"s.session_id, ds.source_hash, {recipe_hash_sql}, {output_hash_sql})"
f"polylogue_embedding_derivation_key(s.session_id, ds.source_hash, {recipe_hash_sql}, {output_hash_sql})"
)
key_current = f"""(
d.session_id IS NOT NULL
Expand Down Expand Up @@ -452,9 +451,7 @@ try:
assert row is not None
result = {name: int(value or 0) for name, value in zip(columns, row, strict=True)}
result["partition_check"] = (
result["exact_fresh_sessions"]
+ result["exact_pending_sessions"]
+ result["exact_blocked_sessions"]
result["exact_fresh_sessions"] + result["exact_pending_sessions"] + result["exact_blocked_sessions"]
== result["eligible_sessions"]
)
print(json.dumps(result, indent=2, sort_keys=True))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,7 @@ read. This is correct, not a gap.
### How the loader ingests this (`pricing.py:_load_litellm_catalog`)

```python
cache_read_usd_per_1m = float(entry.get("cache_read_input_token_cost") or 0.0) * 1_000_000
cache_read_usd_per_1m = float(entry.get("cache_read_input_token_cost") or 0.0) * 1_000_000
cache_write_usd_per_1m = float(entry.get("cache_creation_input_token_cost") or 0.0) * 1_000_000
```

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,12 +32,12 @@ one prompt with N candidate rollouts; the JSONL writer emits one group per line)

```python
class ScoredDataGroup(TypedDict):
tokens: List[List[int]] # per-member token ids
masks: List[List[int]] # per-member loss mask (-100 / token-id convention)
scores: List[float] # per-member scalar reward
advantages: Optional[List[List[float]]] # per-token advantages
tokens: List[List[int]] # per-member token ids
masks: List[List[int]] # per-member loss mask (-100 / token-id convention)
scores: List[float] # per-member scalar reward
advantages: Optional[List[List[float]]] # per-token advantages
ref_logprobs: Optional[List[List[float]]]
messages: Optional[List[List[Message]]] # per-member OpenAI-style message list
messages: Optional[List[List[Message]]] # per-member OpenAI-style message list
generation_params: Optional[Dict[str, Any]]
inference_logprobs: Optional[List[List[float]]]
group_overrides: Optional[Dict]
Expand All @@ -52,11 +52,13 @@ Supporting types (`atroposlib/type_definitions.py`):
```python
number = int | float


class Message(TypedDict):
role: Literal["system", "user", "assistant", "tool"]
content: Content # str (or multimodal content blocks)
content: Content # str (or multimodal content blocks)
reward: Optional[float]


Item = Any
```

Expand All @@ -73,8 +75,7 @@ Key structural facts:
`messages is None`, `base.py` auto-fills it by decoding `tokens`:
```python
group["messages"] = [
[{"role": "user", "content": self.tokenizer.decode(group["tokens"][i])}]
for i in range(len(group["tokens"]))
[{"role": "user", "content": self.tokenizer.decode(group["tokens"][i])}] for i in range(len(group["tokens"]))
]
```
i.e. messages can be supplied directly and Atropos will *not* overwrite them.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -112,16 +112,19 @@ once and issue a handful of **set-based** UPDATEs (each covering all rows for on
model), never row-by-row.

```python
def reprice_in_place(conn): # one sqlite3 connection
seed_price_catalog(conn) # idempotent: ensure new catalog_id rows exist
catalog_id = _catalog_id() # new f"{PROVENANCE}-{EFFECTIVE_DATE}"
def reprice_in_place(conn): # one sqlite3 connection
seed_price_catalog(conn) # idempotent: ensure new catalog_id rows exist
catalog_id = _catalog_id() # new f"{PROVENANCE}-{EFFECTIVE_DATE}"
now_ms = int(time.time() * 1000)

models = [r[0] for r in conn.execute(
"SELECT DISTINCT model_name FROM session_model_usage "
"WHERE cost_provenance IN ('priced','estimated')")]
models = [
r[0]
for r in conn.execute(
"SELECT DISTINCT model_name FROM session_model_usage WHERE cost_provenance IN ('priced','estimated')"
)
]

with conn: # ATOMIC: single transaction
with conn: # ATOMIC: single transaction
for raw in models:
norm = _normalize_model(raw)
p = PRICING.get(norm)
Expand All @@ -130,7 +133,8 @@ def reprice_in_place(conn): # one sqlite3 connection
conn.execute(
"UPDATE session_model_usage SET cost_usd=NULL, priced_with=NULL, "
"priced_at_ms=NULL WHERE model_name=? AND cost_provenance IN ('priced','estimated')",
(raw,))
(raw,),
)
continue
ir, orr = p.input_usd_per_1m, p.output_usd_per_1m
crr, cwr = p.cache_read_usd_per_1m, p.cache_write_usd_per_1m
Expand All @@ -145,7 +149,8 @@ def reprice_in_place(conn): # one sqlite3 connection
AND cost_provenance IN ('priced','estimated')
AND (input_tokens+output_tokens+cache_read_tokens+cache_write_tokens) > 0
""",
(ir, orr, crr, cwr, catalog_id, now_ms, raw))
(ir, orr, crr, cwr, catalog_id, now_ms, raw),
)

# re-aggregate session_profiles from the refreshed per-model rows
conn.execute(
Expand All @@ -161,7 +166,8 @@ def reprice_in_place(conn): # one sqlite3 connection
WHERE sp.session_id = agg.session_id
AND sp.cost_provenance IN ('priced','estimated','mixed')
""",
(catalog_id, now_ms))
(catalog_id, now_ms),
)
```

Notes:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -51,16 +51,16 @@ class MeasureSpec(BaseModel):
id: str
construct: str
operationalization: str
reducer: Literal["count","sum","ratio","mean","median","pXX","entropy","Gini","zstd-ratio"]
reducer: Literal["count", "sum", "ratio", "mean", "median", "pXX", "entropy", "Gini", "zstd-ratio"]
column_expr: str
unit_frame: Literal["sessions","actions","messages","observed-events","work-events","phases","threads"]
unit_frame: Literal["sessions", "actions", "messages", "observed-events", "work-events", "phases", "threads"]
denominator_expr: str | None
evidence_tier: Literal["structural","provider-reported","derived","heuristic","mixed"]
evidence_tier: Literal["structural", "provider-reported", "derived", "heuristic", "mixed"]
required_coverage: CoverageGate
confounds: tuple[str, ...]
provenance_mixing_flags: tuple[str, ...]
uncertainty: UncertaintySpec
null_policy: Literal["suppress","zero","exclude","separate-unknown"]
null_policy: Literal["suppress", "zero", "exclude", "separate-unknown"]
formula_version: int
output_schema: str
footnote_template: str
Expand Down Expand Up @@ -187,7 +187,7 @@ MeasureSpec(
evidence_tier="structural",
required_coverage={"session_latency_profiles": "present", "timing_provenance": "timestamped_or_structural"},
uncertainty={"kind": "proportion", "interval": "wilson"},
footnote_template="n={n}, coverage={coverage}, timing_provenance={timing_provenance}"
footnote_template="n={n}, coverage={coverage}, timing_provenance={timing_provenance}",
)
```

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -372,8 +372,7 @@ def assertion_id_for_finding(
value: object,
evidence_refs: Sequence[str],
detector_ref: str,
) -> str:
...
) -> str: ...
```

[proposal] Add:
Expand All @@ -384,8 +383,7 @@ def upsert_findings_as_assertions(
findings: Sequence[FindingCandidate],
*,
now_ms: int | None = None,
) -> list[ArchiveAssertionEnvelope]:
...
) -> list[ArchiveAssertionEnvelope]: ...
```

Use the pathology pattern exactly:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1082,36 +1082,55 @@ polylogue/analytics/measures.py # MeasureSpec, MEASURE_REGISTRY, evaluate_mea
`MeasureSpec` is a frozen pydantic/dataclass declared in code exactly like `InsightType` and `RigorContract` — the registry is a `dict[str, MeasureSpec]`, not a table.

```python
class EvidenceTier(str, Enum): # ordered weakest→strongest for footnote precedence
HEURISTIC = "heuristic"; DERIVED = "derived"
PROVIDER_REPORTED = "provider_reported"; STRUCTURAL = "structural"
class EvidenceTier(str, Enum): # ordered weakest→strongest for footnote precedence
HEURISTIC = "heuristic"
DERIVED = "derived"
PROVIDER_REPORTED = "provider_reported"
STRUCTURAL = "structural"


class SampleFrame(str, Enum): # RISK-3 keystone
LOGICAL_SESSION = "logical_session" # default: dedup lineage via session_links
PHYSICAL_SESSION = "physical_session"
ACTION = "action"
MESSAGE = "message"
USAGE_EVENT = "usage_event"

class SampleFrame(str, Enum): # RISK-3 keystone
LOGICAL_SESSION = "logical_session" # default: dedup lineage via session_links
PHYSICAL_SESSION = "physical_session"; ACTION = "action"; MESSAGE = "message"; USAGE_EVENT = "usage_event"

class Reducer(str, Enum):
COUNT; SUM; MEAN; MEDIAN; QUANTILE; PROPORTION; RATIO; ENTROPY; DISTINCT
COUNT
SUM
MEAN
MEDIAN
QUANTILE
PROPORTION
RATIO
ENTROPY
DISTINCT


class UncertaintyMethod(str, Enum):
NONE; WILSON; BOOTSTRAP # WILSON⇒proportions, BOOTSTRAP⇒mean/median/quantile/ratio
NONE
WILSON
BOOTSTRAP # WILSON⇒proportions, BOOTSTRAP⇒mean/median/quantile/ratio


@dataclass(frozen=True, slots=True)
class MeasureSpec:
name: str
construct: str # what it operationalizes (prose)
unit_label: str # display unit ("ratio","tokens","$/session","bits","1/hr")
unit_frame: SampleFrame # which rows the reducer folds
construct: str # what it operationalizes (prose)
unit_label: str # display unit ("ratio","tokens","$/session","bits","1/hr")
unit_frame: SampleFrame # which rows the reducer folds
reducer: Reducer
numerator_expr: str # SQL/column expr over the frame (the "formula ref")
denominator_expr: str | None # EXPLICIT denominator for RATIO/PROPORTION (never implicit)
numerator_expr: str # SQL/column expr over the frame (the "formula ref")
denominator_expr: str | None # EXPLICIT denominator for RATIO/PROPORTION (never implicit)
quantile: float | None = None
default_group_fields: tuple[str, ...] = () # ⊆ descriptor.aggregate_group_fields + windows
default_group_fields: tuple[str, ...] = () # ⊆ descriptor.aggregate_group_fields + windows
evidence_tier: EvidenceTier
required_coverage: tuple[CoveragePredicate, ...] = () # checked at composition (§2.B)
confounds: tuple[str, ...] # non-empty is an audit invariant
required_coverage: tuple[CoveragePredicate, ...] = () # checked at composition (§2.B)
confounds: tuple[str, ...] # non-empty is an audit invariant
uncertainty: UncertaintyMethod
output_schema: str # payload model name for render/openapi
output_schema: str # payload model name for render/openapi
```

**Optional (deferred, not v1):** a *rebuildable* `measure_snapshot` cache table in index.db (schema v25) keyed `(measure, group_key, window)` for scale, dropped-and-recomputed on any index rebuild. Spec it only when §4 scale numbers demand it; keep v1 compute-on-read.
Expand Down
Loading