Skip to content

feat(core): record a backup_done activity row when a run completes - #160

Merged
pmaxhogan merged 1 commit into
mainfrom
feat/backup-done-activity-row
Jul 25, 2026
Merged

pmaxhogan merged 1 commit into
mainfrom
feat/backup-done-activity-row

Conversation

@pmaxhogan

Copy link
Copy Markdown
Owner

Summary

  • New backup_done Info activity row written at the all-ops-succeeded point of a cycle (same site as deep_verify_done), with file_count = files uploaded (bundles count their members via exec_progress_from) and bytes = bytes uploaded.
  • Scoping mirrors fix(ui): stream live scan progress from the moment Run Now is clicked #149's scan rows: ALWAYS for a manual Run Now (the feed now reads scan started -> scan complete -> uploads -> Backup complete, even when nothing needed uploading), scheduled ticks only when the run actually executed ops - idle 10-minute ticks add no noise.
  • A run with failed ops writes no completion row (it defers the timestamp advance and stays due for retry; claiming completion would be a lie).
  • The summary/telemetry aggregates filter to upload_done/bundle_upload, so this byte-carrying row cannot double-count.
  • Locale: activity.events.backup_done = "Backup complete".

Testing

  • 3 new orchestrator tests: totals on a worked scheduled cycle; idle-scheduled quiet but manual-with-nothing logs 0/0; failed ops suppress the row.
  • cargo test -p driven-core --lib 359/359; clippy clean; label vitest + prettier + eslint green.

🤖 Generated with Claude Code

https://claude.ai/code/session_01JLB3E2Jm7knNJd37fVpH8X

The activity feed had no row marking a run's completion - it trailed
off after the last per-file row. A cycle whose ops all succeeded now
closes with a backup_done Info row carrying the run's upload totals.
Scoping mirrors the scan rows: manual runs always log it (a Run Now
with nothing to upload still ends with a visible result), scheduled
cycles only when they executed ops, so idle ticks stay quiet. Failed
runs stay silent (they defer the timestamp advance and retry).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JLB3E2Jm7knNJd37fVpH8X
@github-actions

Copy link
Copy Markdown
Contributor

Coverage

Area main this PR delta
Rust (lib crates) 79.67% 79.73% +0.06 (OK)
UI (vue/ts) 91.02% 91.02% +0.00 (OK)

Gate: passed - no coverage regression (epsilon 0.1 pp).

@pmaxhogan
pmaxhogan merged commit 90cde5c into main Jul 25, 2026
18 checks passed
@pmaxhogan
pmaxhogan deleted the feat/backup-done-activity-row branch July 25, 2026 16:52
@github-project-automation github-project-automation Bot moved this from Todo to Done in Driven Jul 25, 2026
pmaxhogan added a commit that referenced this pull request Jul 25, 2026
🤖 I have created a release *beep* *boop*
---


## [2.3.0](v2.2.0...v2.3.0)
(2026-07-25)


### Features

* **core:** record a backup_done activity row when a run completes
([#160](#160))
([90cde5c](90cde5c))
* **ui:** files-uploaded stat card with sparkline and smoother Activity
load-in ([#157](#157))
([2d85c99](2d85c99))
* **ui:** live streaming folder-tree preview for the exclusion editor
([#158](#158))
([47ebe14](47ebe14))


### Bug Fixes

* **telemetry:** count bundled uploads in the anonymous aggregate
([#159](#159))
([11af7ea](11af7ea))
* **ui:** label bundle_upload and hook activity event types
([#154](#154))
([2998c76](2998c76))
* **ui:** make the backing-up bar a true determinate progress bar
([#155](#155))
([eed80a6](eed80a6))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

1 participant