You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Report last known publication progress and workspace state in telemetry #241
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.
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
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.
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).
Patch remaining DirtyWorkspaceError prepare paths if missed (release) and retry/release cleanup success paths to observe dirty.
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.
Update docs/agents/telemetry-snapshot.md null-means-unknown bullet to remembered semantics if needed.
Run gate: ruff check, pytest py3.11, pytest py3.13, then code-review skill, then commit.
Activity
lbacik commentedon Oct 14, 2026
Agent Attempt Result: handoff
Branch: agent/issue-241
PR: none
Handoff note commit:
3a69c9703fa4ab2b845c10ac84a65745727db6e8Evidence
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 NoneDetails
Handoff note: issue #241
Summary
Implemented lifecycle memory for telemetry publication progress and workspace-dirty state in
simple_coding_agent/lifecycle.py(uncommitted). Added_observed_publication/_observed_workspace_dirtydicts,_remember_publication_result/_remember_workspace_dirty/_observe_and_remember_workspace_dirtyhelpers, and hooked_publish_bounded,_publish_terminal, recovery-retry publish,DirtyWorkspaceErrorprepare paths,_hold_dirty_workspace/_emit_workspace_hold, and successful cleanup paths. Still pending: status/telemetry recoveryworkspace_dirtyfields and telemetry remembered-value serving.Remaining work
_recovery_snapshot_locked(status): add liveworkspace_dirtyfield to all three return dicts (startup-hold, dirty-tree hold, checkpoint-present) without changing live GitHub lookups._recovery_snapshot_network_free(telemetry): serve rememberedpublication.comment_confirmed/pull_requestplus rememberedworkspace_dirty(None when nothing observed); addworkspace_dirtyfield; make no tracker/publisher/workspace method calls (onlyworking_directoryattr reads + remembered dicts).DirtyWorkspaceErrorprepare paths if missed (release) and retry/release cleanup success paths to observe dirty.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; assertagentctl statusstill does live lookups.docs/agents/telemetry-snapshot.mdnull-means-unknown bullet to remembered semantics if needed.code-reviewskill, then commit.Evidence
simple_coding_agent/lifecycle.py(git diff --stat: 1 file, ~133 insertions)._remember_publication_result,_observe_and_remember_workspace_dirty,_publish_bounded,_publish_terminal,_retry_retained_attempt,_hold_dirty_workspace,_emit_workspace_hold.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.
Serve lifecycle-remembered publication and workspace state in telemet…
lbacik commentedon Oct 14, 2026
Agent Attempt Result: complete
Branch: agent/issue-241
PR: #250
Merge: auto-merge enabled (merge)
Evidence
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 0Details
Claude SDK completed the implementation workflow.