Cognithor 0.97.0
What's Changed
Features
- feat(memory): TRUST-9 wiring into MemoryIndex.upsert_chunk (#435) (898c54f)
- feat(security): TRUST-10 self-audit backfills for cost / escalation / scope ledgers (#434) (d2ccf10)
- feat(learning): TRUST-9 wiring into KnowledgeIngestService.ingest_file (#433) (0dadea8)
- feat(security): TRUST-10 self-audit backfills for provenance + fingerprint ledgers (#432) (bc2e4e1)
- feat(cli): cognithor receipt diff — surface trust-ledger deltas between two receipts (#431) (003ca45)
- feat(cli): cognithor receipt export-all — bulk-export per-session receipts (#430) (6e23b96)
- feat(gatekeeper): TRUST-3 — derive failure_mode for new policy_names (#429) (6c9423b)
- feat(gatekeeper): TRUST-2 explanation on capability-matrix block path (#428) (7c8c95e)
- feat(packs): TRUST-7 SCHEMA-kind fingerprint of PackManifest schema (#427) (49f13de)
- feat(memory): TRUST-9 wiring into CoreMemory.save (#426) (51e7024)
- feat(memory): TRUST-9 wiring into ProceduralMemory.save_procedure (#425) (75577f4)
- feat(cli): cognithor receipt list — enumerate session_ids in audit log (#424) (ae2dfb5)
- feat(gatekeeper): TRUST-2 explanation on disabled-tool block path (#423) (55005e1)
- feat(gatekeeper): TRUST-3 — explicit failure_mode on gatekeeper audit entries (#422) (5c51010)
- feat(audit): TRUST-3 — classify TRUST-5..10 failure modes (#421) (53d9b4d)
- feat(security): TRUST-9 wiring into IsolatedSessionStore.create_session (#420) (bfb8089)
- feat(gatekeeper): TRUST-2 explanation on OFFLINE-mode network blocks (#419) (9b2a511)
- feat(gatekeeper): TRUST-2 explanation on credential-mask path (#418) (89dbfb1)
- feat(packs): TRUST-10 backfill — record pack_manifest schema lineage (#417) (94c5db0)
- feat(audit): TRUST-10 backfill — record SEC-HIGH-5 schema migration (#416) (947c9d8)
- feat(gatekeeper): TRUST-2 explanations on Python-code + path-validation blocks (#415) (ad65f7a)
- feat(backends): TRUST-7 auto-wire fingerprint_model on first chat() (#414) (cb612fd)
- feat(backends): TRUST-7 MODEL-kind fingerprint capture in OllamaBackend (#413) (e41ed4a)
- feat(security): TRUST-9 wiring into AgentVault.store (#412) (04d182f)
- feat(memory): TRUST-9 wiring into SemanticMemory.add_relation (#411) (641a1c2)
- feat(memory): TRUST-9 wiring into EpisodicMemory.append_entry (#410) (19f3ef1)
- feat(memory): TRUST-9 wiring into SemanticMemory.add_entity (#409) (d8502d5)
- feat(packs): TRUST-7 fingerprint capture in PackLoader (#408) (e11fc19)
- feat(mcp): TRUST-7 fingerprint capture in register_tool (#407) (047eeb0)
- feat(security): TRUST-6/8 cross-wiring helper (#406) (2adaf46)
- feat(api): GET /api/crew/trace/{trace_id}/receipt (#405) (bfcc858)
- feat(cli): cognithor receipt show / verify (TRUST-1 + trust-bundle) (#404) (6a1ecd7)
- feat(audit): opt-in include_trust= folds TRUST-5..10 ledgers into run_receipt (#403) (c131192)
- feat(security): TRUST-1 trust-bundle composer (#402) (48e2dfc)
- feat(security): TRUST-6 cost-ledger foundation (#401) (bbbb814)
- feat(security): TRUST-10 migration-ledger foundation (#400) (13a94cb)
- feat(security): TRUST-8 cloud-escalation ledger foundation (#399) (990c4c0)
- feat(security): TRUST-7 ToolFingerprint foundation (#398) (f6c57a8)
- feat(memory): TRUST-9 ProvenanceTag foundation (#397) (21054b2)
- feat(security): TRUST-5 production wiring — Gatekeeper integrates ScopeRegistry (#396) (78cc903)
- feat(security): TRUST-5-Lite PermissionScope foundation (#395) (77262ca)
- feat(pse): wire Sprint-26 domains into gateway boot (#394) (583cf61)
- feat(pse): Sprint-26 polish — register_all_sprint26_domains() central wiring (#393) (7e874f3)
- feat(pse): Sprint-26.4 — BinaryData + Image V2 + Cross-Domain Demo (Sprint-26 final) (#392) (66945df)
- feat(pse): Sprint-26.3 — Datetime + AST + Float domains (Woche 3) (#391) (7d7981d)
- feat(pse): Sprint-26.2 — SQL + JSON + Bridge whitelist (Cut-Off 2) (#390) (2dd84a7)
- feat(pse): Sprint-26.1 — Domain-Expansion Foundation + Cost-Tracker (#389) (5d8386f)
- feat(audit): TRUST-3 FailureMode enum + classifier + aggregator (#376) (e479b7a)
- feat(packs): TRUST-4 pack rollback with automatic pre-upgrade snapshots (#377) (9bf733d)
- feat(gatekeeper): TRUST-2 structured DecisionExplanation for "why" reconstruction (#375) (cb7a4ef)
- feat(audit): TRUST-1 Run-Receipts API + signed bundle for post-mortem reconstruction (#374) (8b24749)
- feat(pse): Sprint-25 — Planner-Refinement-Loop nach PSE-Synthese (#365) (930ed72)
- feat(pse): Sprint-24 — PSE auto-switch in ContextPipeline produktiv schalten (#364) (3123365)
- feat: Sprint-23 PR#J — context-profile REST endpoints + Flutter picker (#356) (56cf275)
- feat(backend): Sprint-23 PR#E — num_ctx through LLMBackend (vLLM + Ollama + others) (#351) (a68e4da)
- feat(router): Sprint-23 PR#D — pipe num_ctx end-to-end into Ollama wire (#350) (dc59f3a)
- feat(router): Sprint-23 PR#C — context-manager helper for profile scoping (#349) (540a60a)
- feat(router): Sprint-23 PR#A — pure context-profile selection heuristic (#348) (d0aba20)
- feat(router): Sprint-23 — task-aware context profile selection (#347) (b758847)
- feat(pse): Sprint-22 Track B PR#4 — List/Sequence-DSL family + IntList type (#346) (441c689)
- feat(pse): Sprint-22 Track B PR#3 — Number/Int-DSL family + Int as first-class (#345) (3f6843f)
- feat(pse): Sprint-22 Track B PR#2 — Regex/Pattern-DSL family (#344) (5e1be77)
- feat(pse): Sprint-22 Track B PR#1 — String-DSL family + generic input typing (#343) (71f374d)
- feat(pse): Sprint-22 — JSONL persistence for PSECache (Infrastruktur 9→10) (#341) (0a90272)
- feat(planner): Sprint-22 A.3 — PSE routing nudge in Planner system prompt (#340) (ac4368c)
- feat: Sprint-22 A.4+A.5 — PSE open-world hardening (held_out + auto-escalate) (#339) (290b929)
- feat(integration): Sprint-22 Track A — PSE engine as first-class MCP tool surface (#337) (7ad8b0e)
- feat(integration): Sprint-22 Track A.2 — PSE tools as GREEN in Gatekeeper (#338) (a4b0ab6)
- feat(integration): Sprint-21 — arc_tools prefers central VLLMBackend HTTP path (#336) (68cdcfb)
- feat(pse): Sprint-20 Hebel V — few-shot win-demo store + auto-record (#335) (800a260)
- feat(driver): Sprint-19 Hebel U — Phase-A driver multi-game default expansion (#334) (4b34353)
- feat(pse): Sprint-19 Hebel T — first-time-action exploration bonus (#333) (4930183)
- feat(pse): Sprint-19 Hebel S — per-action pixΔ histogram in vision prompt (#332) (282144c)
- feat(pse): Sprint-19 Hebel R — RESET-bonus when stalled+destructive (#331) (0e09d27)
- feat(pse): Sprint-19 Hebel Q — single-pixΔ-spike>1000 plan-scorer trigger (#330) (408b233)
- feat(pse): Sprint-19 Hebel P — raw LLM reasoning in audit JSONL (#329) (e1a4882)
- feat(pse): Sprint-19 Hebel O — stalled-progress warning in vision prompt (#328) (2c67d99)
- feat(pse): Sprint-19 Hebel N — pixΔ-safety multiplicative gate in plan_scorer (#326) (431e5ab)
- feat(pse): Sprint-19 Hebel M — absolute pixΔ in trajectory + concrete prompt rule (#325) (85f1751)
- feat(pse): COGNITHOR_PSE_DEBUG_LLM env-flag — surface choice_fn exceptions (#324) (d91eb75)
- feat(pse): Sprint-19 — full-stack score-attack (Hebels A+B+C+D+E+L) (#323) (968e95a)
- feat(pse): Sprint-18 — add llm_planning agent variant for plan-horizon A/B (#321) (6f0203e)
- feat(pse): Sprint-17 — bp35 observed-rules + max_tokens + pixΔ in history (score-lift hebels) (#320) (94eacc3)
- feat(pse): Sprint-16 Hebel 2 — action-streak detector + vLLM perf tuning (#316) (6b6af4a)
- feat(pse): Sprint-16 Hebel 1 — anti-loop in LLMActionDecoder (ff1cf97)
- feat(pse): Sprint-15 — MTP stats + Hashline-Guard audit-chain integration (#312) (dcdff46)
- feat(pse): Sprint-15 — LLM call telemetry (evidence for tuning) (#311) (0cc8282)
- feat(pse): Sprint-15 — vLLM tuning knobs (FP8 KV cache + MTP speculative) (#310) (1a37723)
- feat(pse): Sprint-15 — training-free GraphExplorerAgent (no LLM) (#309) (74fa5ad)
- feat(pse): Sprint-14 — multi-step planning + vision-mode for Qwen3.6 multimodal (#308) (7f1110d)
- feat(pse): Sprint-13 — LLM prompt perfection (game-rules + GoalInferer) (#307) (8766f2c)
- feat(pse): Sprint-12 PR-13 — wire ClickTargetSampler into Sprint10DSLAgent (#304) (47e76a7)
- feat(mcp): rewire arc_play/arc_replay onto the new program_synthesis stack (#303) (020be10)
- feat(pse): Sprint-12 PR-6+7 — wire ArcAuditTrail + GameProfile into Sprint10DSLAgent (#297) (3b20f43)
- feat(pse): Sprint-12 PR-5+11 — wire FrameAnalyzer + level-transition resets (#299) (40f2faf)
- feat(pse): Sprint-12 PR-12 — feed FrameAnalyzer summary into LLMActionDecoder prompt (#300) (8ce2d27)
- feat(pse): Sprint-12 — in-process EpisodeRunner for ad-hoc episodes (#302) (95a74ff)
- feat(pse): Sprint-12 PR-9 — salience-based ClickTargetSampler for click-target games (#295) (ec08b9c)
- feat(pse): Sprint-12 PR-8 — wire plan_click_solution() as Sprint10DSLAgent fast-path (#294) (6294ba7)
- feat(pse): Sprint-12 PR-4 — FrameAnalyzer (per-action movement signatures) (#293) (0532d0c)
- feat(pse): Sprint-12 PR-2 — persistent observation log + GameProfile (#291) (6b4b248)
- feat(pse): Sprint-12 PR-3 — pure-NumPy fast-path planner for click-toggle games (#292) (3278b5e)
- feat(pse): Sprint-12 — StateGraph + state-keyed counts + per-game prompts (#290) (e1d19bf)
- feat(pse): Sprint-12 — NVFP4 model + InProcess vLLM backend (RTX 5090 validated) (#289) (190fc49)
- feat(pse): Sprint-11 Wave-6 — arcengine harness shim + scorecard parser (Sprint-11 closed) (#287) (442f5ba)
- feat(pse): Sprint-11 Wave-5 — LLMReasoningAgent over vLLM/qwen3.6:27b (#286) (55782fc)
- feat(pse): Sprint-11 Wave-4 — Sprint10DSLAgent + DSLActionDecoder (#285) (066d420)
- feat(pse): Sprint-11 Wave-3 — EpisodeMemory + ChangeDetector + StuckDetector (#284) (a46eb4e)
- feat(pse): Sprint-11 Wave-2 — FrameBridge + ActionDecoder (#283) (294ee10)
- feat(pse): Sprint-11 Wave-1 — ARC-AGI-3 Game-Agent foundation (#282) (38e1ebe)
- feat(pse): Sprint-10 Track B — vLLM/qwen3.6:27b LLM-Prior wiring (infrastructure) (#281) (5d99560)
- feat(pse): Sprint-10 Wave-4 — crop_to_least_common_color_cells (+2 solves) (#280) (a86be18)
- feat(pse): Sprint-10 Wave-3 — crop_smallest_component + neighbor_count_grid (#279) (7e461eb)
- feat(pse): Sprint-10 Wave-2 PR-4 — crop_largest_component (solves 1f85a75f, be94b721) (#277) (cded1b7)
- feat(pse): Sprint-10 Wave-1 PR-3 — fill_with_most_common_color (solves 5582e5ca) (#276) (2427888)
- feat(pse): Sprint-10 Wave-1 PR-2 — 4 symmetry-completion primitives (#275) (6b4eafa)
- feat(pse): Sprint-10 Wave-1 — self_tile_by_mask primitive (solves real ARC 007bbfb7) (#274) (f127274)
- feat(pse): Phase-2 Sprint-9 — real ARC-AGI corpus reality-check baseline (#273) (ca254ef)
Fixes
- fix(test): _CapturingClient ignores TRUST-7 /api/show probe + accepts kwargs (9962044)
- fix(test): seed _fingerprinted_models in test_chat_basic — TRUST-7 cache hit avoids /api/show probe (8f0c344)
- chore(release): v0.97.0 — Operational Trust (e2bc9f1)
- feat(api): GET /api/crew/trace/{trace_id}/receipt (#405) (bfcc858)
- fix(workflow): pack update stub exits 2 and requires qualified_id (WF-6) (#380) (d9b7b8d)
- fix(workflow): iMessage on Win/Linux reads BlueBubbles env or skips with warning (WF-4) (#379) (781ba81)
- fix(workflow): research_screen skips API calls when deep-research pack absent (WF-1) (#378) (6eb5349)
- fix(security): add SHA-256 hash chain to audit log JSONL (#373) (5d1a1a0)
- fix(security): wrap web content in <UNTRUSTED_WEB_CONTENT> + drop trust directive (#372) (b867898)
- fix(workflow): robot_office polls correct kanban endpoint with bare-list parser (WF-3) (#371) (de6b3f7)
- fix(security): route start_background through destructive-command guard (#369) (ad00604)
- fix(security): SQLCipher fail-closed when encryption requested but unavailable (#368) (4518560)
- fix(security): pack manifest can no longer downgrade built-in tool risk (#367) (8a3c94d)
- fix(workflow): drop double /api/v1 prefix in 3 Flutter providers (#366) (262c62e)
- fix(types): mypy --strict zero across entire src/cognithor/ + CI gate (10 rounds) (#363) (6d1a106)
- chore(types): Sprint-23 PR#M — final mass mypy round (970 → 965) (#360) (f90c464)
- fix(tests): import-sort I001 in test_context_profile_routes (main CI hotfix) (#358) (5f38205)
- fix(pse): Run #27 — broaden Hebel N + bump max_tokens 4096→6144 (#327) (e1b3ddb)
- fix(pse): revert max_tokens 1024→2048 — Sprint-17 caused 40→17 tok/s drop (#322) (8dbaf28)
- feat(pse): Sprint-17 — bp35 observed-rules + max_tokens + pixΔ in history (score-lift hebels) (#320) (94eacc3)
- fix(pse): Sprint-16 — VRAM 0.93 + max_num_seqs=8 + disable fast_path on llm_full (#319) (14ee645)
- fix(pse): roll back vLLM defaults — VRAM 0.90 + ctx 32K (Run #12 init crash) (#317) (ac3a694)
- fix(pse): TTFT capture — pipe ttft_s through audit chain into JSONL (e8fb17a)
- fix(pse): num_speculative_tokens=1 — match MTP head's training (37fb889)
- fix(pse): switch llm_full to greedy decoding for MTP (0e2b1b4)
- fix(pse): re-enable vLLM log_stats when telemetry/MTP-stats wired (2649acb)
- fix(pse): vLLM 0.20-v1 telemetry adapters — TTFT field + MTP delta-poll (d769601)
- fix(pse): correct MTP checkpoint id — sakamakismile/Qwen3.6-27B-Text-NVFP4-MTP (4db7de1)
- fix(pse): Qwen3.6-27B has no instruct variant — switch defaults to FP8 base + add live validation runbook (#288) (e849110)
- fix(test_security): replace openssl subprocess with cryptography library (#272) (30a8681)
Other
- docs(sprint-27): IDE-Integration plan-doc — VS-Code + headless CLI (#437) (8f59a2a)
- docs: operational_trust reference document (#436) (1ca7dd3)
- docs(integrations): sevdesk is in development, not v1.0 Launch (A-2) (#383) (8550e0a)
- chore(integrations): catalog now lists 136 tools incl. pse_synthesize family (A-6) (#382) (6d94b73)
- docs(skills): mark 4 marketplace-scaffolding modules NOT WIRED (A-8) (#385) (8628a42)
- refactor(arc): mark cognithor.arc.classic deprecated for one minor cycle (A-4) (#384) (ad3acec)
- refactor(core): delete dead collaboration module (A-7) (#381) (4ba02d5)
- test(flutter): add 28 unit tests for KanbanProvider (#388) (ec549dd)
- test(flutter): add 24 unit tests for EvolutionProvider (#387) (0c991f5)
- test(flutter): add 24 unit tests for SessionsProvider (#386) (5374684)
- chore(gateway): delete dead _idle_loop class attribute (#370) (41a0a70)
- chore(types): Sprint-23 PR#O — mypy --strict zero across the entire codebase (#362) (2144d5a)
- chore(types): Sprint-23 PR#N — surgical mypy round (965 → 737) (#361) (f8d17f9)
- chore(types): Sprint-23 PR#L — mass mypy --strict cleanup (1547 → 970, -37 %) (#359) (1380b68)
- chore(config_routes): Sprint-23 PR#K — Protocol-based RoutableApp typing (#357) (70ee66f)
- chore(mypy): exclude cookiecutter templates + bundled packs from strict scan (#355) (d1652d7)
- chore(core): Sprint-23 PR#H — finish core/ mypy --strict (63 → 0) (#354) (6edc55b)
- chore: Sprint-23 PR#G — delete 10 orphan modules + fix legacy asyncio test (#353) (70e8590)
- chore(core): Sprint-23 PR#F — sweep pre-existing mypy issues across core/ (#352) (8072596)
- perf(pse): Sprint-22 — per-execute memoization in InProcessExecutor (Engine-Performance 9→10) (#342) (cbe14a9)
- Update README.md (9967f65)
- docs(pse): Sprint-15 Phase-A report + finalise driver to MTP=1 (b332b52)
- diag(pse): Phase-A run #9 — MTP-variant as MAIN model (53ee9f9)
- diag(pse): MTP-off baseline run for Phase-A (dc19645)
- scripts: Sprint-12 Phase-A live validation driver (#305) (1a95e50)
- docs(pse): comprehensive README for the arc_agi3 package (#301) (c87eac4)
- docs: Sprint-12 Phase-A live validation runbook (#298) (83f35d7)
- test(pse): Sprint-12 — end-to-end smoke tests + level-transition fix (#296) (73b1818)
- docs(pse): Sprint-10 Wave-1+2 real-ARC validation — +7 training / +2 eval solves (#278) (4062333)
Full Changelog: v0.96.0...v0.97.0