Skip to content

Report last known publication progress and workspace state in telemetry #241

Closed

Description

@lbacik

Parent

Agent-side change from the map Agent fleet dashboard: map; the consolidated list is in the resolution of Define the dashboard project. The snapshot shape is decided in Define the telemetry snapshot contract and the command mechanics in Decide the agentctl telemetry command. Terms: Telemetry snapshot and Figure basis in CONTEXT.md; ADR 0006.

What to build

While an attempt is publishing or held in recovery, the telemetry control section shows the publication progress and workspace state the lifecycle itself last observed, instead of "not known yet". The telemetry path still makes no network or git calls.

Acceptance criteria

  • The lifecycle remembers the last publication progress (comment confirmed, pull request) and workspace-dirty state it computed itself during publication, recovery and startup reconciliation.
  • Telemetry's control.recovery carries those remembered values. They are null only when nothing has been observed in this process.
  • agentctl status keeps its live lookups and output.
  • Test: after a push and a failed publication leading to a recovery hold, telemetry shows the known pull request and comment state while the tracker fake fails on any call from the telemetry path.

Blocked by

Activity

  1. added
    ready-for-agentFully specified implementation issue ready for an unattended agent
    on Oct 14, 2026
  2. self-assigned this
    on Oct 14, 2026
  3. lbacik commented on Oct 14, 2026

    @lbacik
    OwnerAuthor

    Agent Attempt Result: handoff

    Branch: agent/issue-241
    PR: none
    Handoff note commit: 3a69c9703fa4ab2b845c10ac84a65745727db6e8

    Evidence

    • Check command: UV_PROJECT_ENVIRONMENT=/home/agent/venv-py311 uv run --python 3.11 --extra dev ruff check && UV_PROJECT_ENVIRONMENT=/home/agent/venv-py311 uv run --python 3.11 --extra dev pytest && UV_PROJECT_ENVIRONMENT=/home/agent/venv-py313 uv run --python 3.13 --extra dev pytest → exit code None
    • Reviews performed: 0
    • Review repair cycles: 0/2
    • code-review was not run
    • Review findings: not run

    Details

    Handoff note: issue #241

    • issue: 241
    • started_at: 2026-10-14T12:31:26.475895Z
    • reason: token_soft_threshold
    • last_work_commit: 11f6b9b

    Summary

    Implemented lifecycle memory for telemetry publication progress and workspace-dirty state in simple_coding_agent/lifecycle.py (uncommitted). Added _observed_publication / _observed_workspace_dirty dicts, _remember_publication_result / _remember_workspace_dirty / _observe_and_remember_workspace_dirty helpers, and hooked _publish_bounded, _publish_terminal, recovery-retry publish, DirtyWorkspaceError prepare paths, _hold_dirty_workspace/_emit_workspace_hold, and successful cleanup paths. Still pending: status/telemetry recovery workspace_dirty fields and telemetry remembered-value serving.

    Remaining work

    1. Finish _recovery_snapshot_locked (status): add live workspace_dirty field to all three return dicts (startup-hold, dirty-tree hold, checkpoint-present) without changing live GitHub lookups.
    2. Finish _recovery_snapshot_network_free (telemetry): serve remembered publication.comment_confirmed/pull_request plus remembered workspace_dirty (None when nothing observed); add workspace_dirty field; make no tracker/publisher/workspace method calls (only working_directory attr reads + remembered dicts).
    3. Patch remaining DirtyWorkspaceError prepare paths if missed (release) and retry/release cleanup success paths to observe dirty.
    4. Add regression test in tests/test_telemetry.py: push + failed publication (comment_posted=False, PR known) leading to recovery hold; assert telemetry shows known PR/comment while exploding tracker fake fails on any telemetry-path call; assert agentctl status still does live lookups.
    5. Update docs/agents/telemetry-snapshot.md null-means-unknown bullet to remembered semantics if needed.
    6. Run gate: ruff check, pytest py3.11, pytest py3.13, then code-review skill, then commit.

    Evidence

    • Modified file: simple_coding_agent/lifecycle.py (git diff --stat: 1 file, ~133 insertions).
    • Relevant code: _remember_publication_result, _observe_and_remember_workspace_dirty, _publish_bounded, _publish_terminal, _retry_retained_attempt, _hold_dirty_workspace, _emit_workspace_hold.
    • Tests to check: tests/test_telemetry.py (esp. test_telemetry_reports_a_retained_hold_without_lookups), tests/test_recovery.py, tests/test_lifecycle_control.py.

    Automatic continuation 0/2 used; the agent will continue automatically.

  4. added
    round-finishedAgent round finished; requires human evaluation to continue
    and removed
    ready-for-agentFully specified implementation issue ready for an unattended agent
    on Oct 14, 2026
  5. assigned and unassigned on Oct 14, 2026
  6. removed
    round-finishedAgent round finished; requires human evaluation to continue
    on Oct 14, 2026
  7. lbacik commented on Oct 14, 2026

    @lbacik
    OwnerAuthor

    Agent Attempt Result: complete

    Branch: agent/issue-241
    PR: #250
    Merge: auto-merge enabled (merge)

    Evidence

    • Check command: UV_PROJECT_ENVIRONMENT=/home/agent/venv-py311 uv run --python 3.11 --extra dev ruff check && UV_PROJECT_ENVIRONMENT=/home/agent/venv-py311 uv run --python 3.11 --extra dev pytest && UV_PROJECT_ENVIRONMENT=/home/agent/venv-py313 uv run --python 3.13 --extra dev pytest → exit code 0
    • Reviews performed: 1
    • Review repair cycles: 0/2
    • Review findings: not collected

    Details

    Claude SDK completed the implementation workflow.

  8. removed their assignment
    on Oct 14, 2026
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

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions