Skip to content

Epic: Board clarity and provider-neutral session visibility for v1.4.2 #945

Description

@jeffhuber

Part of roadmap #900.

Board clarity and provider-neutral session visibility for v1.4.2

Problem

The local Board exposes useful repository, review, workflow, release-campaign, and process facts, but current work appears below historical material and several displays overstate what the evidence proves. Missing time/cost becomes zero, unknown posture can look green, one work item can appear as several owner requests, a successful gate-publisher workflow can be mistaken for a passing gate, and old provider state can look live without a recent observation. Board also cannot yet correlate a session, work item, run, role, provider, worktree, PR/head, and next actor through one provider-neutral projection.

Outcome

Within ten seconds, an operator can answer what work is happening, who is doing what, what is waiting, who acts next, what changed, and how fresh and complete the evidence is.

Board gains a work-first Now view, selected work evidence, participant summary, meaningful Timeline, collapsed Releases, and diagnostic Health. It consumes one closed local observation model shared by maintained local and hosted execution paths. Missing or stale evidence remains explicitly unknown or last-observed; Board never infers runtime activity from a label, provider name, PID, PR author, lease, or command-line prose.

Release placement and dependencies

Reuse and ownership boundaries

Two delivery tracks

Presentation — initial builder: Code Mower Claude

  1. Correct truth, hierarchy, freshness, missing-value, gate, campaign, and grouped-attention presentation using existing data.
  2. Build the work-first Now/Timeline/Releases/Health experience against the frozen observation fixtures.

Provider-neutral session/events — initial builder: Code Mower Codex

  1. Freeze the local observation/read-model contract and adversarial fixtures.
  2. Connect exact local session/work/run/worktree identity using Sessions: discover the current local brief and lease from a checkout #935 discovery.
  3. Connect remote/provider lifecycle observations by adapting Sessions: provider-neutral remote lifecycle and recovery #906 rather than adding provider-specific state machines.

The two tracks may proceed in parallel only where they do not share a writer-owned file. Within each track, children are sequential. Integrated evidence and release work begin after both tracks converge.

Truth, authority, and privacy contract

  • Correlate with validated opaque session/work/run identity plus repository and resolved worktree lineage.
  • Distinguish assigned, dispatched, observed running, provider-reported stage, waiting, completed implementation, reviewed, ready, and merged.
  • Keep work stage separate from waiting/attention reasons. Group several reasons under one work item and derive one primary next actor from a closed precedence table.
  • Track freshness and coverage per source. Preserve dated last observations when refresh fails. A fresh source must not hide another stale or unavailable source.
  • Treat labels as requests/evidence, check lists as sampled unless complete, and gate publisher execution separately from the authoritative code-mower/gate verdict.
  • Use explicit null/unavailable values for unrecorded time, cost, quality, and productivity. Never coerce them to zero or green.
  • Show a session objective only from an explicitly authorized safe display label. Do not derive it from issue bodies, prompts, messages, process arguments, or context packets.
  • Opening or refreshing Board is observation only: no dispatch, retry, paid create, message, answer, cancellation, merge, lease renewal/takeover, or restart.
  • Local projection and Board storage exclude source, diffs, task/issue bodies, prompts, transcripts, Slack messages, private context, Graphify contents, credentials, raw provider output, personal paths, and secrets.

Delivery and scorecard

Each implementation child produces one independently reviewable PR. It records one named Code Mower builder, keeps one writer on its branch, obtains an independent exact-head peer audit, resolves every P0/P1/P2 finding, and passes focused tests, relevant full tests, privacy checks, normal CI, and code-mower/gate. Only allowlisted metadata may be uploaded. There is no umbrella implementation PR.

Unit Planned owner PR/head Exact-head audit Tests/gate Evidence State
B0 observation contract/fixtures (#946) Code Mower Codex #956 / 0feb5f9 Claude PASS; P0/P1/P2=0 3,004 tests; CI/gate pass offline fixtures draft-ready; held for #940 and release order
B1 existing-data truth fixes (#947) Code Mower Claude pending pending pending Board fixtures planned
B2 work-first presentation (#948) Code Mower Claude pending pending pending desktop/mobile blocked by #946/#947
#935 current session discovery existing issue owner pending pending pending read-only discovery coordinated
B3 local observation connection (#949) Code Mower Codex pending pending pending local maintained path blocked by #946/#935
B4 remote observation connection (#950) Code Mower Codex pending pending pending hosted Devin fixtures blocked by #949/#906
B5 integrated evidence/qualification (#951) assigned after convergence pending pending pending local + hosted canary blocked by #948/#950/#935
B6 v1.4.2 release (#952) assigned after qualification pending pending pending package/Board/cloud blocked by #951/#912/#915

Delivery checklist

Definition of done

  • At desktop and phone widths, active work, next actor/action, and source freshness are visible without traversing release history.
  • A session can show assigned work before a PR exists; review requested, review observed running, changes requested, implementation complete, ready for human review, ready to merge, and merged stay distinct.
  • Stale, unreachable, unlinked, restarted, waiting-for-user, waiting-for-approval, failed, cancelled, no-work, multi-reason, and independent-worktree cases render honestly and deterministically.
  • One real maintained local execution and one bounded hosted Devin run are observed end to end. Paid work uses explicit apply, a bounded ACU limit, and no automatic uncertain retry.
  • Completed and old campaigns cannot dominate Now; nonterminal history without recent liveness is labeled unverified.
  • The default Claude + Codex setup and no-session checkout remain simple and compatible.
  • v1.4.2 passes fresh install/upgrade, package/release qualification, Board restart verification, and existing metadata-only upload. No cloud field changes are part of this epic.
  • The accepted local projection is ready for Slack: metadata-only Board and CodeMower.com lifecycle telemetry #921 to map Slack-specific and hosted/cloud lifecycle data, and Release: qualify and publish Slack session ingress in v1.5.0 #923 can run its end-to-end canary/final acceptance.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestepicEpic tracking issue

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions