{ "schemaVersion": 1, "id": "memory-subjects-dark", "title": "Memory subjects, surfaces, and committed records — dark", "baseUrl": "http://127.0.0.1:15286", "colorScheme": "dark", "reducedMotion": "reduce", "personas": [{ "id": "fixture", "label": "Read-only Memory fixture", "auth": { "kind": "anonymous" } }], "viewports": [ { "label": "desktop", "width": 1440, "height": 900 }, { "label": "narrow", "width": 768, "height": 900 }, { "label": "mobile", "width": 390, "height": 844 }, { "label": "compact", "width": 320, "height": 700 } ], "routes": [ { "id": "subjects", "label": "Subject index", "path": "/w/memory-review/memory", "goal": "Choose an explicit Memory subject or create one with a Backend-validated role.", "dataState": "Active and retired subjects across a paginated list, plus create-form and permission-rejection states.", "ready": { "kind": "selector", "selector": "[data-memory-view='subjects'] .subject-list" }, "capturePoints": [ { "id": "initial", "label": "Subjects" }, { "id": "create-form", "label": "Create Subject form", "interaction": [ { "action": "click", "selector": "button.subject-create-trigger" } ], "ready": { "kind": "selector", "selector": "#subject-create-panel input" } }, { "id": "permission-error", "label": "Create permission error", "interaction": [ { "action": "fill", "selector": "#subject-create-panel input", "value": "Permission denied" }, { "action": "click", "selector": "#subject-create-panel button[type='submit']" }, { "action": "wait", "ready": { "kind": "selector", "selector": "#subject-create-error" } } ] } ] }, { "id": "subjects-empty", "label": "Empty Subject index", "path": "/w/memory-review/memory?cursor=fixture-empty-subject-page", "goal": "Create the first visible Subject when the current bounded page is empty.", "dataState": "Successful empty Subject page with a return-to-first-page recovery link.", "ready": { "kind": "selector", "selector": "[data-memory-state='empty']" }, "capturePoints": [ { "id": "initial", "label": "Empty Subjects" }, { "id": "create-form", "label": "Create from empty Subjects", "interaction": [ { "action": "click", "selector": "button.subject-create-trigger" } ], "ready": { "kind": "selector", "selector": "#subject-create-panel input" } } ] }, { "id": "subjects-error", "label": "Subject list error", "path": "/w/memory-review/memory?cursor=fixture-error-subject-page", "goal": "Keep explicit Subject creation available while the existing list cannot load.", "dataState": "Intentional Subject-list HTTP 503 with the independent create disclosure still available.", "ready": { "kind": "selector", "selector": "[data-memory-state='error']" }, "capturePoints": [ { "id": "initial", "label": "Subjects unavailable" }, { "id": "create-form", "label": "Create while list unavailable", "interaction": [ { "action": "click", "selector": "button.subject-create-trigger" } ], "ready": { "kind": "selector", "selector": "#subject-create-panel input" } } ] }, { "id": "representative", "label": "Ready subject surface", "path": "/w/memory-review/memory/release-coordination-subject-with-a-deliberately-long-stable-identity-for-responsive-review", "goal": "Read the ready resident surface and scan active, resolved, and retracted committed Memories without nested vertical scrolling.", "dataState": "Ready generated Markdown surface with long content, unsafe Markdown, wide table/code, provenance refs, and three lifecycle states.", "ready": { "kind": "selector", "selector": "[data-memory-view='subject'][data-memory-state='ready'] article[aria-label='Resident context']" }, "capturePoints": [ { "id": "initial", "label": "Ready subject" }, { "id": "subject-diagnostics", "label": "Subject diagnostics", "interaction": [ { "action": "click", "selector": "details.subject-technical-details summary" } ], "ready": { "kind": "selector", "selector": "details.subject-technical-details[open]" } }, { "id": "surface-diagnostics", "label": "Surface sources and diagnostics", "interaction": [ { "action": "click", "selector": "details.surface-details summary" } ], "ready": { "kind": "selector", "selector": "details.surface-details[open]" } } ] }, { "id": "detail", "label": "Committed Memory detail", "path": "/w/memory-review/memory/release-coordination-subject-with-a-deliberately-long-stable-identity-for-responsive-review/memory-decision-with-a-deliberately-long-stable-identity-for-overflow-review-0000000001", "goal": "Audit immutable Memory body, candidate evidence, source refs, derivations, and change history.", "dataState": "Current active change with bounded typed provenance and active/resolved/retracted immutable history.", "ready": { "kind": "selector", "selector": "[data-memory-view='detail'] .change-list" }, "capturePoints": [{ "id": "initial", "label": "Memory detail" }] }, { "id": "empty", "label": "Ready-empty subject", "path": "/w/memory-review/memory/empty-subject", "goal": "Distinguish a valid ready-empty snapshot and an empty committed Memory list from failure.", "dataState": "Ready snapshot with empty Markdown and no refs; successful current list with no records.", "ready": { "kind": "selector", "selector": "[data-memory-view='subject'][data-memory-state='ready'] [data-surface-ready-empty]" }, "capturePoints": [{ "id": "initial", "label": "Ready empty" }] }, { "id": "ungenerated", "label": "Ungenerated subject context", "path": "/w/memory-review/memory/ungenerated-subject", "goal": "Distinguish a Subject with no generated resident context from lost committed Memory.", "dataState": "Ungenerated resident context and a successful empty committed Memory list.", "ready": { "kind": "selector", "selector": "[data-memory-view='subject'][data-memory-state='ungenerated']" }, "capturePoints": [{ "id": "initial", "label": "Not generated" }] }, { "id": "stale", "label": "Stale subject surface", "path": "/w/memory-review/memory/stale-subject", "goal": "Recognize that no snapshot is displayable while committed Memories remain readable.", "dataState": "Stale availability without snapshot and one resolved committed Memory.", "ready": { "kind": "selector", "selector": "[data-memory-view='subject'][data-memory-state='stale']" }, "capturePoints": [{ "id": "initial", "label": "Stale" }] }, { "id": "failed", "label": "Failed subject surface", "path": "/w/memory-review/memory/failed-subject", "goal": "See generation failure without displaying a failed or partial snapshot.", "dataState": "Failed availability without snapshot and one retracted committed Memory.", "ready": { "kind": "selector", "selector": "[data-memory-view='subject'][data-memory-state='failed']" }, "capturePoints": [{ "id": "initial", "label": "Failed" }] }, { "id": "error", "label": "Subject endpoint error", "path": "/w/memory-review/memory/error-subject", "goal": "Keep each read-only region explicit when subject, surface, and current Memory requests fail.", "dataState": "Intentional HTTP 503 from all subject-scoped endpoints.", "ready": { "kind": "selector", "selector": "[data-memory-view='subject'][data-memory-state='error']" }, "capturePoints": [{ "id": "initial", "label": "Unavailable" }] } ], "processes": [{ "id": "memory-fixture", "command": "deno", "cwd": "..", "args": [ "run", "--allow-net", "--allow-read", "browser-tests/memory_document_fixture_server.ts", "15286", "../../web/workspace/build" ], "readyUrl": "http://127.0.0.1:15286/health" }] }