Build Life Console v1: personal inbox, quick tasks, and SecondBrain capture
Context / correction: MC-4133 was dispatched and closed on the narrower "Life Manager feedback buttons on tickets" scope before Elmar's product direction was fully captured. Tha...
StateDoneNext ActionClosedOwnerLuciRuntimeClosedAge20d ago
Ticket is done; runtime is closed.·profile codex · cwd /home/lucienne/workspace/mission-control · uptime 19d 14h · last activity 18d 9h ago
Description
MC-4139
Context / correction:
MC-4133 was dispatched and closed on the narrower "Life Manager feedback buttons on tickets" scope before Elmar's product direction was fully captured. That was the wrong UX direction. Treat MC-4133 as a narrow implementation artifact; this ticket is the corrected product scope.
Goal:
Create a dedicated Elmar-facing Life Console separate from the Luci/worker kanban. It should show Elmar's life/attention queue, not what Luci is busy with.
Deliverables:
1. Add/upgrade a dedicated route for the Life Console (preferred: /life; can reuse /life-manager only if navigation remains clear). It should be a personal inbox/calendar/tasks view, not a scheduler run-log.
2. Surface sections: Today/calendar, Needs me, Waiting/delegated, Saved for later, Tasks, Notes/Capture, and Learning/rules feedback.
3. Add manual quick-task creation from the UI. This must be synchronous/lightweight: no Claude session, no worker process. Store as Life item / Life task backing record and show immediately.
4. Add a backend command/API path so Luci can add tasks for Elmar from Telegram, e.g. "add task: pay school account by Friday". The actual save path must remain deterministic/lightweight; use model reasoning only when transforming vague natural language is explicitly needed.
5. Add rich note capture from the Life Console into SecondBrain inbox as markdown-only. Target: /home/lucienne/workspace/PKA/SecondBrain/SB Inbox/ unless current pka_paths says otherwise. Do not write binaries/attachments. Store sanitized markdown with useful frontmatter (created, source=life-console, tags).
6. Move Life Manager feedback affordances out of the ticket-detail clutter. Keep /api/lm-feedback if useful, but primary UI should be in Life Console. Remove or hide excessive per-ticket Life buttons from ticket.html if MC-4133 added them.
7. Preserve existing Life Manager safety rules: never silently suppress legal/safety/CAA/Safair/urgent/signature/approval items without explicit safe rule handling.
8. Add concise tests/smoke checks for: quick task API, note-to-SecondBrain markdown write, Life Console route, and feedback action wiring. Run narrow tests and browser smoke if UI changes.
9. Update the relevant manifest/wiki note if routes or data locations change.
Non-goals:
- Do not turn every Life item into a worker session.
- Do not make Elmar manage Luci's kanban for personal tasks.
- Do not dump raw email/attachments/binaries into SecondBrain.
Owner: Luci
Runtime/profile: MC worker / Claude Sonnet dev-loop
Expected check-in: within 24h
Completion gate: /life visible on MC, manual task add works, note capture writes a markdown file to SecondBrain inbox, ticket UI is not cluttered with Life feedback buttons, and a concise smoke-test result is attached.
Activity
done
INTERACTIVE
Luci is working...
Details —
Done
· High
· Luci
▼
SState
Done
Closed
PPeople
TTiming / Details▼
telegram (luci)
Mission Control
20d ago
18d ago
Advanced / Operator evidence
RRouting owner
ROperator console
Ticket is done; runtime is closed.terminal_state_reapprofile codex · cwd /home/lucienne/workspace/mission-control · uptime 19d 14h · last activity 18d 9h agoMC is visibility-only. Hermes Luci launches and gates work outside MC, then mirrors evidence/status here.Raw console: luci · codex/openai/gpt-5.5
WWorkflow
Start Dev Review + QA ▾
Select phases to include:
Agents
Review Gates
Decision
WAT routing: choose an agent, review gate, or decision. Buttons use the live runtime when one is attached.
DONE: LifeConsolev1shipped—/liferoute+synctask/noteAPIs+SecondBrainmarkdowncapture+ccgram/addtask+collapsedMC-4133ticketclutter;25
tests across 2 repos pass; merges gated for controller.
⏵⏵bypasspermissionson (shift+tabtocycle)220411tokens
{"mc_signal":"DONE","ticket":"MC-4139","nonce":"MC_TICKET_TURN:4139:1779646826884:bba2d180","payload":"Life Console v1 shipped on feat/mc-4139-life-console
(MC)+feat/mc-4139-addtask(ccgram)—/liferoute,synctask/noteAPIs,SecondBrainmarkdowncapture,/addtaskTelegram,ticket.htmlLMcluttercollapsed;25
tests pass"}
luci20d ago
Workflow action `review_ready` applied. Work ready for review.
api20d ago
Ack: feat/mc-4139-life-console pushed (e9c79fe on top of MC-4133 stack); FF-mergeable to mission-control master. Holding in_review per worker's 'merges gated for controller' note — Elmar/Lucienne to decide live deploy (/life route + ccgram /addtask + SecondBrain capture is user-facing). No unilateral merge or restart.
api20d ago
Ack: feat/mc-4139-life-console pushed (e9c79fe on top of MC-4133 stack); FF-mergeable to mission-control master. Held in_review per 'merges gated for controller' — Lucienne/Elmar to authorize live deploy (/life + ccgram /addtask user-facing). No unilateral merge or restart.
Luci19d ago
Controller triage: worker DONE marker was not live completion. Root cause for Elmar not seeing it: luci-dashboard gunicorn was still running pre-MC-4139 code; /life and /api/life/* returned 404. Restarted luci-dashboard at 21:20 SAST; verified /life 200, /api/life/items 200, browser smoke shows Life Console sections and no JS console errors. Keeping ticket in_review until clean landing/gate is finalized.
Luci19d ago
REVIEW BLOCKER from Elmar QA: /life is empty because v1 only reads the new life_items table (0 rows) and does not ingest/backfill the existing Life Manager ticket queue. DB evidence: 20 source=life-manager tickets are still in inbox, but life_console_sections() only calls list_life_items(status='open'). Required before done: populate Life Console from existing Life Manager inbox/calendar/task sources OR migrate/backfill them into life_items; add useful empty-state guidance; verify /life shows real personal queue items, not just blank counters. Returning to todo.
Luci19d ago
REVIEW: Fix pushed on feat/mc-4139-life-console—life_console_sections()nowingestsopensource='life-manager'tickets(read-onlyadapter,noschema
change).Livemc.dbcheck:20LMticketssurfaced→19needs_me,7today(high/critical),1waiting.Per-sectionempty-stateguidanceadded;ticket-backed
items link to /ticket/ with no ✓/× (lifecycle stays on Life Manager). 14/14 tests pass (3 new). Restart luci-dashboard to pick up; merge gate remains
controller'scall.
⏵⏵bypasspermissionson (shift+tabtocycle)103760tokens
{"mc_signal":"REVIEW","ticket":"MC-4139","nonce":"MC_TICKET_TURN:4139:1779650817099:51167e55","payload":"Empty /life fixed — life_console_sections now folds
inopenlife-managertickets(20surfaced,19needs_me,7today);14testspass;needsluci-dashboardrestart+controllermerge"}
luci18d ago
Luci picking up this ticket (background worker).
luci18d ago
[failed_to_inject] runtime_busy: Ticket runtime is not ready for input (status=running). Wait for the current turn to finish, queue the message, or explicitly interrupt/restart the runtime before sending more terminal i
Ticket picked up by Luci via MC dispatcher.
MC-4139: Build Life Console v1: personal inbox, quick tasks, and SecondBrain capture
Work this ticket in the live tmux runtime. Use DONE:, REVIEW:, or QUESTION: when you need MC to reflect the next state.
Luci18d ago
MC-4139 branches pushed and QA-approved: Mission Control Life Console rebased on master, SB Inbox + feedback wired, ccgram /addtask verified; no live deploy/restart per guardrails, ready for controller merge/deploy.
api18d ago
Gate (orchestrator). Branch feat/mc-4139-life-console = 3 clean commits FF-mergeable onto current origin/master (12d2249 Life Console v1 + 03e6099 ingest LM tickets + 7f059ab inbox/feedback align). Diff +1218/-15: app.py +104, models.py +365, life_console.html +400, tests +277, ticket.html -17 (LM clutter collapsed). Worker test claims: 14/14 + 25/25 earlier. ccgram /addtask wired separately. Per guardrail no live deploy — needs Elmar approval to merge + restart luci-dashboard (Life Console is user-facing). Holding under lucienne controller. Note: MC-4205 already canonicalized onto master independently — Life Console FF chain is unblocked.
luci-controller18d ago
[controller · ticket released · 2026-05-25T22:32:54+02:00]
Dependency MC-4198 (campaign blocker hardening) is done. Releasing MC-4139 for pickup.
Atomic release:
- status: waiting → todo
- assigned_to: luci
- runtime_profile: codex
- pending_state: cleared
- failure_reason: cleared
- campaign_owner: cleared
Safety guardrails — NON-NEGOTIABLE:
- No live deploy.
- No `luci-dashboard` restart.
- No DB destructive ops; do not mutate production runtime state.
- No prod/master copy; work on an isolated branch and push.
- Independent QA + Tessa UA gate before any merge to master.
- Commit + push before DONE/REVIEW/QUESTION.
Scope unchanged — see ticket description. Completion gate is /life route live, manual task add works, note capture writes markdown to SecondBrain inbox, ticket UI not cluttered with Life feedback buttons, narrow smoke evidence attached.
luci-controller19d ago
[controller · live-state correction · 2026-05-25T19:32:50+02:00]
Reopened source-of-truth: Life Console v1 exists on branch `feat/mc-4139-life-console` (commits e9c79fe/da9b399), but current live master does not contain it. Verified `/life` and `/api/life/items` return 404 while `/life-manager` returns 200. So the one-page Life Console was built and briefly restarted during review, but it was never landed into the current deployed master and disappeared when later MC master/app-shell work became live. Parked behind active MC-4122 deploy; next action is rebase/merge MC-4139 after MC-4122, restart service, and smoke `/life`.
luci-controller18d ago
[controller · dependency correction · 2026-05-25T21:19:59+02:00]
MC-4122 is done, so the old blocker was stale. Keeping Life Console restore parked only behind MC-4198 control-plane hardening to avoid parallel Mission Control repo changes while the prevention fix is active. Next release condition: MC-4198 done, then rebase/merge/smoke `/life`.
luci-followup-sweep18d ago
[follow-up] 2 min past expected check-in (2026-05-26 07:02:05 UTC).
luci-controller18d ago
[approval recorded · 2026-05-26T13:22:44+02:00] Elmar approved Life Console merge/deploy/restart. Controller merged MC-4139 in isolated clean worktree, tests passed, and pushed merge commit 0084e8a to origin/master. Live checkout deploy/restart is temporarily blocked by active dirty Mission Control WIP (MC-4162 plus staged MC-4215/MC-4202 files) that would be overwritten by fast-forward; do not stash/overwrite active worker changes. Next action: after MC-4162 resolves or checkout is clean, fast-forward production checkout, restart luci-dashboard, and smoke /life.
luci-controller18d ago
Fixed in plain English: the new Life page is now live, and the Life button on the MC home page now opens that new Life page instead of the old Life Manager scan page. I checked it by clicking the Life button in the browser and by checking the page loads successfully.
luci18d ago
Reopened by product feedback: Elmar says /life is not the reviewed actionable dashboard; created follow-up MC-4247 to add item actions, comment/reply, done/cancel, and ticket/task creation.