Commit Graph
53 Commits
Author SHA1 Message Date
robbond 5fb32e628c feat(confidence-engine): synthesize corrected findings 2026-08-31 07:48:29 +01:00
robbond 75f7c6bafd feat(confidence-engine): synthesize understanding from focused findings 2026-08-30 19:27:30 +01:00
robbond f1bd91faf8 feat(confidence-engine): promote focused learning on done 2026-08-28 10:48:45 +01:00
robbond 166ee91698 feat(confidence-engine): persist canonical investigation state 2026-08-27 16:21:41 +01:00
robbond bc35e05253 refactor(confidence-engine): migrate scenario persistence to storage provider 2026-08-27 15:44:58 +01:00
robbond 22e1d7484b feat(confidence-engine): support finding corrections 2026-08-27 13:43:23 +01:00
robbond 5c926154cd feat(confidence-engine): support not-relevant findings 2026-08-27 12:08:11 +01:00
robbond 0659599795 feat(confidence-engine): wire focused contribution finding derivation 2026-08-27 07:45:15 +01:00
robbond dc558e9c37 docs(confidence-engine): verify findings derivation gap in production chain
Verified: deriveFindingsFromContributions() exists with passing tests but
is never called in production. The contributions → findings seam is un-wired:

1. handleDeconstructSubmit() sends contribution to ScenarioForm
2. appendFocusedContribution() stores it in focusedContributions[]
3. findings state stays [] — no derivation ever runs
4. empty findings sent to /api/cases/update (which only echoes them back)
5. nothing renders from the findings surface

Fix: call deriveFindingsFromContributions after contribution is appended.
2026-08-27 07:40:50 +01:00
robbond 3235c35cf0 feat(confidence-engine): add focused finding handoff plumbing 2026-08-26 16:07:21 +01:00
robbond fce68a050f feat(ui): RTO.31 ownership of focused contributions flows to scenario form
- Add focusedContributions state + appendFocusedContribution callback in ScenarioForm
- Contributions persist through session lifecycle (save/restore/restart)
- Pass onFocusedContribution and focusedContributions to ReasoningWorkspace
- Call onFocusedContribution on successful deconstruct with full result shape
- Test: contribution sequence, field preservation, same/different target coexistence
2026-08-21 18:03:49 +01:00
robbond 41afd9b49f checkpoint: preserve reflection and response-contract work 2026-08-21 14:29:39 +01:00
robbond 86287bebe8 feat(ui): surface initial semantic reconstruction 2026-08-21 10:34:22 +01:00
robbond 412551c968 test(ui): restore deconstruction before question choice 2026-08-20 15:58:23 +01:00
robbond 4b264c5681 test(ui): make inferred questions originate branches 2026-08-20 14:29:42 +01:00
robbond 65ced2e406 test(ui): make initial branch selection user owned 2026-08-20 14:11:37 +01:00
robbond 4761d07a76 test(ui): stabilize fresh start hydration 2026-08-20 10:00:18 +01:00
robbond 173240d76c test(ui): restore fresh start scenario entry 2026-08-20 09:42:32 +01:00
robbond cef8f46bd6 test(ui): restore entry lifecycle and notebook rendering 2026-08-20 09:33:06 +01:00
robbond 86bb3426ef test(ui): explore provisional branch pause and reopen 2026-08-20 09:00:01 +01:00
robbond df0e3b5a9b test(ui): explore branch notebook composition 2026-08-20 08:42:43 +01:00
robbond e7a1bc689c test(ui): consolidate branch scoped workspace 2026-08-20 08:01:40 +01:00
robbond 36060faf16 test(ui): verify branch scoped workspace data path 2026-08-20 07:56:26 +01:00
robbond 09eeed5a9e test(ui): isolate branch scoped workspace experiment 2026-08-20 07:35:08 +01:00
robbond 6bf9e7e710 test(ui): explore branch as workspace context 2026-08-20 06:26:35 +01:00
robbond 8163c5d014 test(ui): clarify branch provenance and hierarchy 2026-08-20 06:15:44 +01:00
robbond ad42f67800 test(ui): explore passive branch result indication 2026-08-20 05:55:25 +01:00
robbond 2561b5d720 test(e2e): repair investigation textarea selectors 2026-08-15 13:55:59 +01:00
robbond 1cf71d6ce2 experiment: reduce initial observation input 2026-08-05 12:51:48 +01:00
robbond 46f2d12726 exp(06): focused investigation — visual hierarchy without layout changes
Emphasise the active investigation card through stronger elevation,
clearer borders, and improved spacing. Quiet supporting panels by
reducing border opacity, softening heading weight, and lowering
text contrast — making them available without competing for attention.

Facilitator card receives a warm surface tint to read as a briefing
card rather than a generic panel.

Documentation: close experiment 05 with findings, add experiment 06
to the design evolution log, add Attention Hierarchy to UX guidelines,
defer dark mode to a future Investigation Mode experiment.

Presentation changes only — no reasoning, prompts, graph, API, or
backend modifications.
2026-08-05 12:41:13 +01:00
robbond f46c419168 fix: restore missing </form> closing tag in landing layout 2026-08-05 12:27:00 +01:00
robbond d1e6c2e032 experiment: facilitator panel beside workspace (Exp 05)
- Replace stacked landing with responsive two-column layout
- Left panel (1/3 desktop): facilitator intro card with dismiss checkbox
- Right panel (2/3 desktop): Tell me what's happening textarea + Analyse
- Mobile/tablet stack vertically as before
- 'Don't show' uses sessionStorage; future: user profile settings
- Close Exp 04 (Partially confirmed) in evolution log
- Add Exp 05 entry + Facilitator Behaviour UX section
2026-08-05 12:25:44 +01:00
robbond 048f31f43b experiment: replace landing with workshop introduction
- Added Welcome card (Before we begin) to idle state
- Reduced textarea from 10 to 6 rows
- Added reassurance text below Analyse button
- Removed redundant empty-state placeholder
- Closed Experiment 03 (Partially confirmed) in evolution log
- Added Experiment 04: Facilitated Workshop Introduction
- Added Entry Experience section to UX guidelines
2026-08-05 12:14:30 +01:00
robbond 607a2d4a58 fix: ensure loading overlay renders during analyse 2026-08-05 09:51:17 +01:00
robbond 553bdb1bdd fix: allow loading render before awaiting (prevent React batching) 2026-08-05 09:16:56 +01:00
robbond 61210c1200 fix: localise update reasoning state 2026-08-05 08:36:18 +01:00
robbond 6d11c1d503 fix: unify reasoning mode across submissions 2026-08-05 08:27:22 +01:00
robbond c4f5744c30 feat: Phase 2-5 UX enhancements — recovery cards, session persistence, summary panel, contract backlog
Phase 2: Recovery state components (ProviderUnavailableCard,
MalformedResponseCard, UnexpectedStateCard, ContinueLaterBanner) with
automatic error detection for provider/network/malformed/unexpected states.

Phase 3: Session persistence via sessionStorage — save after each
successful turn, restore on mount, clear on restart/reset. Continuelater banner shown when session is restored.

Phase 4: InvestigationSummaryPanel component displaying current status,
understanding summary, questions answered/remaining, investigation timestamps.

Phase 5: docs/reasoning-contract-backlog.md documenting all mocked
fields (60+ rows across 7 categories) with feature/UI need/mock/desired
output/stage/notes columns.

Also: wired onRestart through ReasoningWorkspace → ScenarioForm, fixed
getErrorType scope issues, removed broken window.__restartInvestigation.
2026-08-05 06:48:59 +01:00
robbond 9e0fca8f53 fix: preserve plain-language current understanding 2026-08-04 18:43:50 +01:00
robbond f703fdc842 fix: clarify terminal investigation states 2026-08-04 18:10:06 +01:00
robbond ae615c4343 feat: make the workspace tldr first 2026-08-04 17:39:30 +01:00
robbond 97a4847770 feat: add mock investigation mode for UI development
- lib/mocks/confidence-engine/mock-client.js: self-contained ESM interceptor with 6 inline turn fixtures, no external deps or require() calls
- components/scenario-form.jsx: MOCK_ENABLED compile-time boolean, useMockGlobals() hook injects window.__MOCK_* globals at runtime, ternary dispatch to mockFetch
- .env.example: NEXT_PUBLIC_CONFIDENCE_ENGINE_MOCKS, MOCK_DELAY, MOCK_SCENARIO env vars
- docs/v0.7-ui-mock-mode.md: setup, scenarios (default/complete/error), architecture, safety rules, fixture schema
2026-08-04 13:56:15 +01:00
robbond 7c07ce195d Revert "feat: allow earlier evidence to be revised"
This reverts commit 13b14fd01a.
2026-08-04 13:10:09 +01:00
robbond 13b14fd01a feat: allow earlier evidence to be revised 2026-08-03 20:00:13 +01:00
robbond f5cbf4b629 fix: preserve conversation after update 2026-08-03 19:23:06 +01:00
robbond 3a83944006 fix: set update loading state before request 2026-08-03 19:01:04 +01:00
robbond 0dd15345e4 fix: make active reasoning state visible 2026-08-03 16:09:04 +01:00
robbond ed32d585bb feat: add user-focused reasoning workspace 2026-08-03 15:18:35 +01:00
robbond 72ef175971 feat: surface new unknowns after graph updates 2026-08-02 10:30:59 +01:00
robbond a9bce79658 feat: add one-turn situation graph update UI 2026-08-02 09:43:42 +01:00