Commit Graph
151 Commits
Author SHA1 Message Date
robbond 726746f22d fix(confidence-engine): extend reconstruction chat timeout 2026-09-06 06:16:36 +01:00
robbond 7070342fb1 fix(confidence-engine): preserve successful chat detection 2026-09-05 19:41:01 +01:00
robbond cd1c6f4fc5 chore(confidence-engine): expose reconstruction fallback path 2026-09-05 19:13:39 +01:00
robbond c7a0a79d0f feat(confidence-engine): constrain reconstruction chat output 2026-09-05 18:44:47 +01:00
robbond 46b9bd8b03 fix(confidence-engine): retain successful provider path 2026-09-05 17:12:31 +01:00
robbond dabd9e2245 fix(confidence-engine): expose failed provider path 2026-09-05 17:00:33 +01:00
robbond 677f5e5757 fix(confidence-engine): use configured model for chat detection 2026-09-05 16:46:24 +01:00
robbond 84fc53f017 fix(confidence-engine): expose reconstruction validation issues 2026-09-05 13:48:48 +01:00
robbond 55e935066c fix(confidence-engine): project unexplained transitions 2026-09-05 13:15:11 +01:00
robbond fb49df87aa feat(confidence-engine): expose initial reconstruction evidence 2026-09-05 12:39:17 +01:00
robbond 7472b6ecb0 feat(confidence-engine): preserve initial reconstruction relationships 2026-09-05 11:53:58 +01:00
robbond 13fbceee7a feat(confidence-engine): strengthen initial reconstruction contract 2026-09-05 10:43:57 +01:00
robbond f2a761d26f test(confidence-engine): expose reconstruction experiment seam 2026-09-04 19:42:27 +01:00
robbond cc3a5dabd4 feat(confidence-engine): v0.60j preserve investigation on restart 2026-09-04 10:18:22 +01:00
robbond 7ba1771bcf feat(confidence-engine): v0.60g1 list investigation summaries
Recover to clean v0.60f then implement only the storage listing contract.

- Add listInvestigations() to provider: enumerate by prefix, project lightweight summary (id, scenario, updatedAt, investigationRevision, reportExists, reportGeneratedFromRevision), sort by updatedAt desc
- Add application-facing wrapper in investigation-storage.js
- Add 8 deterministic tests covering all listing invariants (coexistence, correct IDs, lightweight projection, legacy exclusion, unrelated exclusion, independent update, ordering, malformed skip)
- Fix MockStorageMap WebStorage API compatibility (.length + .key(i))
- Portfolio NOT migrated — that is v0.60g2
2026-09-04 06:45:26 +01:00
robbond 827411f254 refactor(confidence-engine): v0.60d clarify investigation storage identity
Replace bare re-export in investigation-storage.js with explicit wrapper
functions that own the canonical identity contract: snapshot.id is the sole
save identity authority. The provider never allocates or changes IDs.

7 new deterministic tests prove: identified snapshots persist under their
own id key, explicit competing id arguments are ignored, A/B remain
independently addressable, unknown IDs return null, and legacy singleton
compatibility is preserved for unmigrated callers.

No application callers modified. UI/routes not migrated.
2026-09-03 18:29:00 +01:00
robbond 8c85120b1c feat(confidence-engine): v0.60c identity-aware investigation storage
- loadInvestigation(id) selects by durable ID when provided, null for unknown
- saveInvestigation(snapshot, id) persists under provider-chosen key derived from id
- clearInvestigation(id) removes specific investigation by identity when provided
- localStorage representation: confidence-engine-investigation:<durable-id>
- Backward-compatible singleton path preserved for existing unmigrated callers
- 6 new targeted tests proving two independently addressable Investigations
2026-09-03 18:09:03 +01:00
robbond 83818c0c71 feat(confidence-engine): add investigation overview synthesis seam 2026-09-02 14:34:32 +01:00
robbond b647236d44 fix(confidence-engine): constrain understanding to supported evidence 2026-09-01 18:17:26 +01:00
robbond cd895a33ff feat(confidence-engine): reopen clarified questions 2026-09-01 16:07:22 +01:00
robbond 76c6096905 fix(confidence-engine): resolve model for episode reasoning 2026-09-01 13:24:37 +01:00
robbond 7177c7bb61 refactor(confidence-engine): make episode preparation server-owned 2026-09-01 11:54:02 +01:00
robbond 8432ed45d4 fix(confidence-engine): keep episode reasoning server-side 2026-09-01 11:24:48 +01:00
robbond c89cc51ae6 feat(confidence-engine): add completed episode reasoning seam 2026-09-01 09:28:02 +01:00
robbond ab655e2222 fix(confidence-engine): scope episode closure authority 2026-09-01 08:55:38 +01:00
robbond 0752c53a25 feat(confidence-engine): accept episode evidence at graph application 2026-09-01 08:30:26 +01:00
robbond 6b77e32771 feat(confidence-engine): accept completed episode reasoning input 2026-09-01 06:59:04 +01:00
robbond efa39f52de feat(confidence-engine): prepare completed episode evidence 2026-09-01 06:48:55 +01:00
robbond 8e941b0c7b fix(confidence-engine): resolve synthesis model configuration 2026-08-31 07:32:04 +01:00
robbond ff1119b4d5 feat(confidence-engine): establish current understanding synthesis seam 2026-08-30 18:48:38 +01:00
robbond e221bd3bf8 feat(confidence-engine): isolate finding-informed understanding 2026-08-28 08:16:37 +01:00
robbond 166ee91698 feat(confidence-engine): persist canonical investigation state 2026-08-27 16:21:41 +01:00
robbond ba956eeb3a refactor(confidence-engine): add investigation storage provider 2026-08-27 15:24:38 +01:00
robbond 3235c35cf0 feat(confidence-engine): add focused finding handoff plumbing 2026-08-26 16:07:21 +01:00
robbond fdb173d0e9 feat(confidence-engine): anchor focused frontier to investigation relevance 2026-08-26 12:16:41 +01:00
robbond 42a7e82d88 feat(confidence-engine): tighten focused relationship attribution 2026-08-26 07:56:27 +01:00
robbond 112739b8e5 feat(confidence-engine): checkpoint focused deconstruction reasoning 2026-08-25 15:10:09 +01:00
robbond 9d670822a3 feat(confidence-engine): preserve focused deconstruction semantic fidelity 2026-08-24 10:11:06 +01:00
robbond 517d780e2c checkpoint: preserve semantic decomposition investigation state 2026-08-22 08:21:29 +01:00
robbond 41afd9b49f checkpoint: preserve reflection and response-contract work 2026-08-21 14:29:39 +01:00
robbond 4b264c5681 test(ui): make inferred questions originate branches 2026-08-20 14:29:42 +01:00
robbond 49c4b904df test(ui): checkpoint branch scoped fixture 2026-08-20 07:43:18 +01:00
robbond 7add85d8d2 feat(experiment): checkpoint focused investigation boundaries 2026-08-19 05:41:32 +01:00
robbond 4a34dcc361 test(experiment): ground RTO apparatus in real fixture 2026-08-18 12:39:19 +01:00
robbond 25a88c5fc3 feat: multi-thread experimental apparatus (RTO.A1)
Add fixture-only apparatus for representing multiple concurrent open
investigation items within a fixed case context.

New scenario 'multi-thread' exposes:
- A fixed central situation statement and case summary (product-launch
  timing decision, drawn from existing pre-anchored-product-launch
  data)
- Three open investigation items — none compulsory: enterprise customer
  signing probability, competitor timing, financial viability comparison
- One engine recommendation (mt-ent-customer-signing, ordered first)
- User selection of any item; chosen item becomes visually primary while
  others remain visible as context
- Experimental state isolated in _experimental / _experimentalState —
  never aliases production graph fields
2026-08-18 10:39:16 +01:00
robbond 772ae495c6 fix(reasoning): preserve investigation ownership across selection and question rejection 2026-08-17 17:58:45 +01:00
robbond 6ca8381b99 fix(reasoning): correct insufficient-observation comparability state 2026-08-17 09:32:21 +01:00
robbond ade445e453 fix(reasoning): reconcile evidence and preserve deterministic continuation 2026-08-17 08:06:08 +01:00
robbond b181c3ea75 fix(reasoning): enforce confirmation-gated decision closure
- reconcileDecisionClosureOwnership normaliser between reconciliation and validation (Boundary B)
- Strips terminal parent updates without explicit user confirmation; preserves all other proposal work
- Strips parent from resolvedUnknownNodeIds bookkeeping on no-confirmation strip
- Restores reconciler-forced resolved→unknown for synthetic updates too
- Prevents hybrid unknown+value states by nulling newValue in all stripping paths
- No-op update created when reconciler synthesized the entry to prevent downstream errors

Prompt:
- Rule #143 rewritten from evidence-sufficiency to explicit-confirmation gate
- Directs model to use possibleInference for directional conclusions when confirmation absent

Regression preservation:
- 60B.43 lifecycle invariant restored via explicit confirmation phrases in fixture answers
- 60B.49 reconciliation auto-add invariant restored under confirmed closure flow
- Test apparatus fixed: structuralActionRequired required with userSupportedMeaning (validator constraint)

New coverage:
- 10 tests for all 60B.79/80 coverage requirements
- 5 prompt alignment tests for Rule #143
2026-08-15 11:34:39 +01:00
robbond 912680b967 fix(reasoning): recognise decision in sufficiency question 2026-08-14 19:04:17 +01:00