Metadata
| Status | done |
|---|---|
| Assigned | agent-925 |
| Model | pi:openai-codex:gpt-5.6-sol |
| Created | 2026-07-28T09:08:11.567465476+00:00 |
| Started | 2026-07-28T09:59:39.071076956+00:00 |
| Completed | 2026-07-28T10:39:38.499301488+00:00 |
| Tokens | 11150559 in / 27235 out |
Description
Objective
Make the primary ⌂ Workspace Activity view answer: “what is happening anywhere in this graph, and when did it happen?” It is currently effectively empty: Dashboard draws only an empty activity sparkline, while a narrow operations-only semantic feed is hidden behind the Service/Coordinator-log tab and loaded only when that tab is selected.
Product contract
⌂ Activityis a live, graph-wide, chronological feed—not another task list, an empty sparkline, or a daemon-log alias.- On entry it immediately shows bounded recent history, tails new activity, and gives a human a truthful feel for forward progress.
- Every row shows both compact relative age and local/system clock time (for example
12s · 09:41:03); ages advance while the TUI is idle. Preserve the full timestamp in selected/detail state. Narrow layouts degrade deterministically without making time disappear. - Default order is oldest→newest with newest at the bottom. Entering/tailing follows the bottom. Scrolling up freezes the viewport and shows an unseen-event count; End returns to live tail.
Feed coverage
Normalize and merge durable graph evidence in timestamp order, with stable dedupe IDs, from the existing authoritative sources rather than inventing status from silence:
- task creation/edit/publish/link/pause/resume/retry/abandon and messages-as-metadata;
- lifecycle reservation/running/waiting/terminal/failure and dispatcher/admission decisions;
- agent spawn/exit and bounded native activity labels/counts (thinking/output/tool/usage), never chain-of-thought or raw hidden reasoning;
- worktree changes explicitly labelled
observed/unprovenversus receipt/checkpoint/validation progress labelledproven; - checkpoint/candidate creation, validation, evaluation/FLIP, finalization, mechanical/strong merge, cleanup and repair outcomes;
- watchdog suspicion/probe/continuation and important service/resource/backpressure events. High-frequency native/observer activity must be coalesced by task+kind over a short window with counts/deltas, so the feed conveys motion without becoming an unbounded firehose. Terminal/control events must never be coalesced away.
UI and navigation
- Make one activation of
⌂land on Activity on wide and compact layouts. Repeated activation may open Workspace actions. - Keep Dashboard/Config/Service log available as secondary Workspace actions; rename/label them so Activity is not confused with the raw service log.
- Rows include semantic icon/category, concise task/agent identity, safe bounded summary, authority (
observed,proven, orcontrol) where applicable, and time. - Selecting/activating a task-bound row opens that exact task without retargeting after refresh.
- Empty state is only allowed for a truly eventless graph and must state which event projection/source is unavailable—not suggest starting an already-running service.
- Use the auxiliary async storage lane and a bounded ring/history page. No filesystem reads, directory walks, or JSON parsing in render; no raw
target/churn; no persistent global status-bar telemetry.
Compatibility and safety
- Historical operations/lifecycle records deserialize safely; malformed/truncated lines are skipped and surfaced as a bounded source-health note.
- Restart, log rotation/truncation, compaction, and duplicate reads remain idempotent; ordering is deterministic for equal timestamps.
- Message bodies, secrets, raw prompts, chain-of-thought, and unbounded output never enter the feed.
- Preserve selected-task live progress hierarchy and existing Chat/Task/Workspace navigation semantics.
Validation
- RED unit/integration tests demonstrate that Dashboard Activity is empty despite seeded operations today, then prove normalized multi-source ordering, stable dedupe, coalescing, authority labels, local+relative time, and age refresh.
- Seed operations + lifecycle + Pi native progress + worktree observer + candidate/finalizer/merge evidence and assert each semantic class appears in one ordered feed without raw reasoning text.
-
Real candidate-binary tmux smoke opens
⌂, sees existing graph history immediately, appends live events and sees them tail, verifies relative age changes/system clock remains visible, scroll-up freezes with unseen count, and End resumes tail. -
Compact/narrow and wide captures remain legible and
⌂always reaches Activity; Dashboard/Config/Service log remain reachable. - Rotation/restart/malformed-line tests prove no duplicates, panic, or false fresh activity.
-
Bounded-load/performance test proves large journals and ignored
target/churn cannot block render or grow memory unboundedly. - Existing symbolic context, four-sided/mobile, selected-task live progress, auxiliary snapshot latency, and service-log smokes pass.
-
cargo fmt --check,cargo clippy, relevant tests and owned smoke pass; commit/push andwg donecomplete normally.
Depends on
Required by
Log
- 2026-07-28T09:08:11.539622969+00:00 Task paused
- 2026-07-28T09:08:11.631066628+00:00 Task published
- 2026-07-28T09:58:26.048080589+00:00 Spawn preparation deferred before launch permit; rollback is complete and no circuit-breaker charge was recorded. Repair the reported checkout/configuration condition and retry: spawn transaction for agent-925 rolled back (task remains dispatchable; rollback diagnostics: complete): failed to establish isolated-worktree observer baseline: observer source tuple mismatch
- 2026-07-28T09:59:39.262823218+00:00 Spawned by coordinator --executor pi --model openai-codex:gpt-5.6-sol --isolation required-worktree
- 2026-07-28T09:59:49.856686318+00:00 Starting implementation; inspecting prior WIP and current TUI/activity storage architecture.
- 2026-07-28T10:27:31.295530453+00:00 Implemented bounded auxiliary graph-wide projection (operations, lifecycle, Pi canonical native labels/counts, observer evidence, finalization journals), Activity primary Workspace UI, live relative+clock times, stable selection/tail/unseen behavior, and separate Dashboard/raw Service log actions. Focused activity tests pass.
- 2026-07-28T10:37:56.224627730+00:00 Validated: cargo build, focused multi-source ordering/dedupe/coalescing/safety/time tests, plain cargo clippy, cargo fmt --check, candidate-binary Activity tmux smoke, and existing symbolic-context tmux smoke pass. -D warnings remains blocked by repository-wide pre-existing warnings.
- 2026-07-28T10:37:56.296919246+00:00 Committed: 18d45b33 — pushed to remote
- 2026-07-28T10:39:38.499301748+00:00 Task marked as done