bd: backup 2026-03-01 22:55

This commit is contained in:
ZenchantLive 2026-03-01 14:55:58 -08:00
parent fa03819b75
commit 55a04c73b8
3 changed files with 7 additions and 4 deletions

View file

@ -1,10 +1,10 @@
{
"last_dolt_commit": "h1nejgp1066rjkarjkfnr6ph2o5re9p9",
"last_dolt_commit": "vdao6f9o6oflkanqiad3k831ks2bvtgj",
"last_event_id": 0,
"timestamp": "2026-03-01T22:40:23.445254307Z",
"timestamp": "2026-03-01T22:55:54.010965494Z",
"counts": {
"issues": 419,
"events": 77,
"events": 80,
"comments": 0,
"dependencies": 521,
"labels": 606,

View file

@ -75,3 +75,6 @@
{"actor":"zenchantlive","comment":null,"created_at":"2026-03-01T14:24:56Z","event_type":"closed","id":75,"issue_id":"beadboard-qq2","new_value":"Closed","old_value":""}
{"actor":"ZenchantLive","comment":null,"created_at":"2026-03-01T14:37:44Z","event_type":"updated","id":76,"issue_id":"beadboard-0fi.1","new_value":"{\"notes\":\"Identity UI pattern: editable chip. Shows actor name as pill in TopBar. Click → becomes text input. Blur or Enter → snaps back to chip. Placeholder 'your name' when empty. Uses local useState for editing vs display mode.\"}","old_value":"{\"id\":\"beadboard-0fi.1\",\"title\":\"Add actor state to UnifiedShell and identity input to TopBar\",\"description\":\"TASK CONTEXT\\n- Bead ID: beadboard-0fi.1\\n- Title: Add actor state to UnifiedShell and identity input to TopBar\\n- Parent/Epic: beadboard-0fi\\n- Dependencies (must be done first): none (first in phase)\\n\\nTASK CONTRACT\\n- Goal: Add a single operator identity string to UnifiedShell state, initialize it from localStorage('bb.humanActor') for backwards compatibility, persist changes back to localStorage, and render an editable identity field in TopBar so the operator can set their name once and have it flow to both drawers.\\n- Success Criteria:\\n - UnifiedShell exposes actor: string and setActor: (name: string) =\\u003e void\\n - Initial value read from localStorage('bb.humanActor') if present, otherwise empty string\\n - On change, value written back to localStorage('bb.humanActor')\\n - TopBar renders a compact text input or editable chip showing current actor name\\n - TopBar receives actor and onActorChange props (check current TopBarProps in src/components/shared/top-bar.tsx before editing)\\n - npm run typecheck passes\\n- Scope:\\n - src/components/shared/unified-shell.tsx — add useState for actor, pass to TopBar\\n - src/components/shared/top-bar.tsx — add actor input UI and props\\n- Out of Scope:\\n - Passing actor to drawers (that is beadboard-0fi.2 and beadboard-0fi.3)\\n - Server-side persistence\\n - Validation or auth\\n\\nIMPLEMENTATION CONSTRAINTS\\n- Preserve existing backend/API contracts unless explicitly stated otherwise.\\n- Reuse shared components and logic; avoid one-off forks.\\n- Keep changes targeted and minimal for this bead.\\n\\nVERIFICATION REQUIREMENTS\\n- Required commands:\\n - npm run typecheck\\n - npm run lint\\n - npm run test\\n- Report any remaining risks and follow-up beads explicitly.\",\"status\":\"open\",\"priority\":1,\"issue_type\":\"task\",\"owner\":\"jordanlive121@gmail.com\",\"created_at\":\"2026-02-28T22:03:38Z\",\"created_by\":\"ZenchantLive\",\"updated_at\":\"2026-02-28T22:03:38Z\"}"}
{"actor":"ZenchantLive","comment":null,"created_at":"2026-03-01T14:38:02Z","event_type":"status_changed","id":77,"issue_id":"beadboard-0fi.1","new_value":"{\"status\":\"in_progress\"}","old_value":"{\"id\":\"beadboard-0fi.1\",\"title\":\"Add actor state to UnifiedShell and identity input to TopBar\",\"description\":\"TASK CONTEXT\\n- Bead ID: beadboard-0fi.1\\n- Title: Add actor state to UnifiedShell and identity input to TopBar\\n- Parent/Epic: beadboard-0fi\\n- Dependencies (must be done first): none (first in phase)\\n\\nTASK CONTRACT\\n- Goal: Add a single operator identity string to UnifiedShell state, initialize it from localStorage('bb.humanActor') for backwards compatibility, persist changes back to localStorage, and render an editable identity field in TopBar so the operator can set their name once and have it flow to both drawers.\\n- Success Criteria:\\n - UnifiedShell exposes actor: string and setActor: (name: string) =\\u003e void\\n - Initial value read from localStorage('bb.humanActor') if present, otherwise empty string\\n - On change, value written back to localStorage('bb.humanActor')\\n - TopBar renders a compact text input or editable chip showing current actor name\\n - TopBar receives actor and onActorChange props (check current TopBarProps in src/components/shared/top-bar.tsx before editing)\\n - npm run typecheck passes\\n- Scope:\\n - src/components/shared/unified-shell.tsx — add useState for actor, pass to TopBar\\n - src/components/shared/top-bar.tsx — add actor input UI and props\\n- Out of Scope:\\n - Passing actor to drawers (that is beadboard-0fi.2 and beadboard-0fi.3)\\n - Server-side persistence\\n - Validation or auth\\n\\nIMPLEMENTATION CONSTRAINTS\\n- Preserve existing backend/API contracts unless explicitly stated otherwise.\\n- Reuse shared components and logic; avoid one-off forks.\\n- Keep changes targeted and minimal for this bead.\\n\\nVERIFICATION REQUIREMENTS\\n- Required commands:\\n - npm run typecheck\\n - npm run lint\\n - npm run test\\n- Report any remaining risks and follow-up beads explicitly.\",\"notes\":\"Identity UI pattern: editable chip. Shows actor name as pill in TopBar. Click → becomes text input. Blur or Enter → snaps back to chip. Placeholder 'your name' when empty. Uses local useState for editing vs display mode.\",\"status\":\"open\",\"priority\":1,\"issue_type\":\"task\",\"owner\":\"jordanlive121@gmail.com\",\"created_at\":\"2026-02-28T22:03:38Z\",\"created_by\":\"ZenchantLive\",\"updated_at\":\"2026-03-01T22:37:43Z\"}"}
{"actor":"ZenchantLive","comment":null,"created_at":"2026-03-01T14:46:07Z","event_type":"status_changed","id":78,"issue_id":"beadboard-0fi.1","new_value":"{\"notes\":\"Identity UI pattern: editable chip. Shows actor name as pill in TopBar. Click → becomes text input. Blur or Enter → snaps back to chip. Placeholder 'your name' when empty. Uses local useState for editing vs display mode.\\n\\nIMPLEMENTATION PLAN (ready to execute next session):\\n\\n1. src/components/shared/unified-shell.tsx\\n - Add import: useState (already imported)\\n - Add actor state near top of component (after existing useState declarations):\\n const [actor, setActor] = useState\\u003cstring\\u003e(() =\\u003e\\n typeof window !== 'undefined' ? (window.localStorage.getItem('bb.humanActor') ?? '') : ''\\n );\\n - Add useEffect to persist on change:\\n useEffect(() =\\u003e {\\n if (typeof window !== 'undefined') window.localStorage.setItem('bb.humanActor', actor);\\n }, [actor]);\\n - Pass to TopBar: actor={actor} onActorChange={setActor}\\n\\n2. src/components/shared/top-bar.tsx\\n - Add to TopBarProps: actor?: string; onActorChange?: (name: string) =\\u003e void;\\n - Add editable chip component inline (no new file needed):\\n - Local state: const [editing, setEditing] = useState(false);\\n - When !editing: render \\u003cbutton onClick={() =\\u003e setEditing(true)} className='...'\\u003e\\n {actor || 'your name'}\\n \\u003c/button\\u003e\\n - When editing: render \\u003cinput autoFocus value={actor} onChange={e =\\u003e onActorChange?.(e.target.value)}\\n onBlur={() =\\u003e setEditing(false)} onKeyDown={e =\\u003e e.key === 'Enter' \\u0026\\u0026 setEditing(false)}\\n placeholder='your name' className='...' /\\u003e\\n - Place the chip in TopBar right section, before ThemeToggle\\n\\n3. Run: npm run typecheck \\u0026\\u0026 npm run lint \\u0026\\u0026 npm run test\\n4. Close beadboard-0fi.1 then start beadboard-0fi.2\",\"status\":\"open\"}","old_value":"{\"id\":\"beadboard-0fi.1\",\"title\":\"Add actor state to UnifiedShell and identity input to TopBar\",\"description\":\"TASK CONTEXT\\n- Bead ID: beadboard-0fi.1\\n- Title: Add actor state to UnifiedShell and identity input to TopBar\\n- Parent/Epic: beadboard-0fi\\n- Dependencies (must be done first): none (first in phase)\\n\\nTASK CONTRACT\\n- Goal: Add a single operator identity string to UnifiedShell state, initialize it from localStorage('bb.humanActor') for backwards compatibility, persist changes back to localStorage, and render an editable identity field in TopBar so the operator can set their name once and have it flow to both drawers.\\n- Success Criteria:\\n - UnifiedShell exposes actor: string and setActor: (name: string) =\\u003e void\\n - Initial value read from localStorage('bb.humanActor') if present, otherwise empty string\\n - On change, value written back to localStorage('bb.humanActor')\\n - TopBar renders a compact text input or editable chip showing current actor name\\n - TopBar receives actor and onActorChange props (check current TopBarProps in src/components/shared/top-bar.tsx before editing)\\n - npm run typecheck passes\\n- Scope:\\n - src/components/shared/unified-shell.tsx — add useState for actor, pass to TopBar\\n - src/components/shared/top-bar.tsx — add actor input UI and props\\n- Out of Scope:\\n - Passing actor to drawers (that is beadboard-0fi.2 and beadboard-0fi.3)\\n - Server-side persistence\\n - Validation or auth\\n\\nIMPLEMENTATION CONSTRAINTS\\n- Preserve existing backend/API contracts unless explicitly stated otherwise.\\n- Reuse shared components and logic; avoid one-off forks.\\n- Keep changes targeted and minimal for this bead.\\n\\nVERIFICATION REQUIREMENTS\\n- Required commands:\\n - npm run typecheck\\n - npm run lint\\n - npm run test\\n- Report any remaining risks and follow-up beads explicitly.\",\"notes\":\"Identity UI pattern: editable chip. Shows actor name as pill in TopBar. Click → becomes text input. Blur or Enter → snaps back to chip. Placeholder 'your name' when empty. Uses local useState for editing vs display mode.\",\"status\":\"in_progress\",\"priority\":1,\"issue_type\":\"task\",\"owner\":\"jordanlive121@gmail.com\",\"created_at\":\"2026-02-28T22:03:38Z\",\"created_by\":\"ZenchantLive\",\"updated_at\":\"2026-03-01T22:38:00Z\"}"}
{"actor":"ZenchantLive","comment":null,"created_at":"2026-03-01T14:48:00Z","event_type":"status_changed","id":79,"issue_id":"beadboard-0fi.1","new_value":"{\"status\":\"in_progress\"}","old_value":"{\"id\":\"beadboard-0fi.1\",\"title\":\"Add actor state to UnifiedShell and identity input to TopBar\",\"description\":\"TASK CONTEXT\\n- Bead ID: beadboard-0fi.1\\n- Title: Add actor state to UnifiedShell and identity input to TopBar\\n- Parent/Epic: beadboard-0fi\\n- Dependencies (must be done first): none (first in phase)\\n\\nTASK CONTRACT\\n- Goal: Add a single operator identity string to UnifiedShell state, initialize it from localStorage('bb.humanActor') for backwards compatibility, persist changes back to localStorage, and render an editable identity field in TopBar so the operator can set their name once and have it flow to both drawers.\\n- Success Criteria:\\n - UnifiedShell exposes actor: string and setActor: (name: string) =\\u003e void\\n - Initial value read from localStorage('bb.humanActor') if present, otherwise empty string\\n - On change, value written back to localStorage('bb.humanActor')\\n - TopBar renders a compact text input or editable chip showing current actor name\\n - TopBar receives actor and onActorChange props (check current TopBarProps in src/components/shared/top-bar.tsx before editing)\\n - npm run typecheck passes\\n- Scope:\\n - src/components/shared/unified-shell.tsx — add useState for actor, pass to TopBar\\n - src/components/shared/top-bar.tsx — add actor input UI and props\\n- Out of Scope:\\n - Passing actor to drawers (that is beadboard-0fi.2 and beadboard-0fi.3)\\n - Server-side persistence\\n - Validation or auth\\n\\nIMPLEMENTATION CONSTRAINTS\\n- Preserve existing backend/API contracts unless explicitly stated otherwise.\\n- Reuse shared components and logic; avoid one-off forks.\\n- Keep changes targeted and minimal for this bead.\\n\\nVERIFICATION REQUIREMENTS\\n- Required commands:\\n - npm run typecheck\\n - npm run lint\\n - npm run test\\n- Report any remaining risks and follow-up beads explicitly.\",\"notes\":\"Identity UI pattern: editable chip. Shows actor name as pill in TopBar. Click → becomes text input. Blur or Enter → snaps back to chip. Placeholder 'your name' when empty. Uses local useState for editing vs display mode.\\n\\nIMPLEMENTATION PLAN (ready to execute next session):\\n\\n1. src/components/shared/unified-shell.tsx\\n - Add import: useState (already imported)\\n - Add actor state near top of component (after existing useState declarations):\\n const [actor, setActor] = useState\\u003cstring\\u003e(() =\\u003e\\n typeof window !== 'undefined' ? (window.localStorage.getItem('bb.humanActor') ?? '') : ''\\n );\\n - Add useEffect to persist on change:\\n useEffect(() =\\u003e {\\n if (typeof window !== 'undefined') window.localStorage.setItem('bb.humanActor', actor);\\n }, [actor]);\\n - Pass to TopBar: actor={actor} onActorChange={setActor}\\n\\n2. src/components/shared/top-bar.tsx\\n - Add to TopBarProps: actor?: string; onActorChange?: (name: string) =\\u003e void;\\n - Add editable chip component inline (no new file needed):\\n - Local state: const [editing, setEditing] = useState(false);\\n - When !editing: render \\u003cbutton onClick={() =\\u003e setEditing(true)} className='...'\\u003e\\n {actor || 'your name'}\\n \\u003c/button\\u003e\\n - When editing: render \\u003cinput autoFocus value={actor} onChange={e =\\u003e onActorChange?.(e.target.value)}\\n onBlur={() =\\u003e setEditing(false)} onKeyDown={e =\\u003e e.key === 'Enter' \\u0026\\u0026 setEditing(false)}\\n placeholder='your name' className='...' /\\u003e\\n - Place the chip in TopBar right section, before ThemeToggle\\n\\n3. Run: npm run typecheck \\u0026\\u0026 npm run lint \\u0026\\u0026 npm run test\\n4. Close beadboard-0fi.1 then start beadboard-0fi.2\",\"status\":\"open\",\"priority\":1,\"issue_type\":\"task\",\"owner\":\"jordanlive121@gmail.com\",\"created_at\":\"2026-02-28T22:03:38Z\",\"created_by\":\"ZenchantLive\",\"updated_at\":\"2026-03-01T22:46:06Z\"}"}
{"actor":"ZenchantLive","comment":null,"created_at":"2026-03-01T14:55:56Z","event_type":"closed","id":80,"issue_id":"beadboard-0fi.1","new_value":"actor state in UnifiedShell, editable chip in TopBar, all checks pass","old_value":""}

File diff suppressed because one or more lines are too long