Skip to content

feat(dashboard): show devices, backends, storage and errors - #375

Merged
A-EDev merged 11 commits into
mainfrom
feat/sync-dashboard
Nov 1, 2026
Merged

A-EDev merged 11 commits into
mainfrom
feat/sync-dashboard

Conversation

@A-EDev

@A-EDev A-EDev commented Oct 31, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • Dashboard tab: the Sync page's Linked devices section has a Dashboard tab next to Linked devices. Interests, taste, persona, stats and channels are left to the Flow Neuro page and Settings > Taste. The Dashboard shows:
    • Store: its kind and URL. A Flow server's protocols and live relay come from GET /v1/info.
    • Storage: used, quota and object count from GET /v1/status (ServerStore::status, which last_seen now reads). WebDAV and LAN groups show that their store doesn't report usage, with no extra listing.
    • Devices: the existing DeviceList.
    • Synced profiles: batches waiting for each profile to run, and when this computer last wrote its snapshot.
    • Recent errors: error kinds and times only, the newest 20, kept in Default's settings (sync2_errors) and cleared when the group is forgotten.
  • Snapshot time fix: a snapshot written before any batch was merged now records its time.

Related issue

Part of Flow-Tube/Flow#1034 (Desktop dashboard).

Change type

  • Bug fix
  • Feature
  • Refactor or maintenance
  • Documentation
  • Build, packaging, or CI

Validation

Run on the head of this branch (9f9301b), in its worktree with the shared Cargo target dir:

  • pnpm test: 190 files, 1103 tests passed
  • pnpm build: passed
  • cargo fmt --manifest-path src-tauri/Cargo.toml --all -- --check: clean
  • cargo clippy --manifest-path src-tauri/Cargo.toml --all-targets --all-features: finished; every warning it prints is on a line older than this stack (checked with git blame)
  • cargo test --manifest-path src-tauri/Cargo.toml --all-targets --all-features: 1116 passed, 0 failed, 9 ignored
  • I smoke-tested the affected desktop behavior.

New tests:

  • tests/sync2_server.rs: storage and info read from the server.
  • tests/sync2_dashboard.rs: the error log keeps the newest 20; a profile's own snapshot time.
  • src/store/useDashboardStore.test.ts: loading, and a failed load keeping the last dashboard.

Screenshots or recordings

Risk and compatibility

  • No migration. One new device-level setting, sync2_errors, classified in store_inventory.tsv.

  • Network: opening the Dashboard of a server group asks the server for /v1/status and /v1/info once, and again after each sync while it is open.

  • Nothing logged or kept holds content, URLs, tokens or IP addresses.

  • No new secrets, private data, telemetry, or broad Tauri permissions were introduced.

  • User-facing documentation was updated where needed.

  • Dependency and lockfile changes are intentional and limited to this PR.

  • Breaking changes and upgrade steps are clearly documented.

Copilot AI balanced review requested due to automatic review settings November 1, 2026 18:11

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has insufficient remaining quota. Try requesting a review at a lower effort level.

An organization owner can choose the repository organization as the billing source for reviews requested by members with a paid Copilot license. Learn about Copilot code review billing.

@A-EDev
A-EDev changed the base branch from feat/profiles-sync-choice to main November 1, 2026 21:29
@A-EDev
A-EDev merged commit 7d36fb8 into main Nov 1, 2026
7 checks passed
@A-EDev
A-EDev deleted the feat/sync-dashboard branch November 1, 2026 22:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants