feat(cli): upgrade status to an active telemetry dashboard#50
Merged
Conversation
- Repoint `has_large_files` mocks from `daemon.py` to `ops.py`. - Relocate `test_has_large_files_uses_config_limit` to `test_ops.py` and isolate system notification side-effects via factory mocking. - Expand `test_cli.py` to cover power telemetry rendering, dynamic health thresholds, and newly integrated drift/large-file dashboard warnings. - Fix `pytest.mark.parametrize` argument typing to satisfy strict linters.
…grades - Add coverage descriptions for power telemetry and passive dashboard rendering in `test_cli.py`. - Document the relocation of pipeline blocker (large file) validation to `test_ops.py`.
- Update `ops.py` to reflect its new role in evaluating pipeline blockers (oversized files). - Update `cli.py` to document the zero-latency `status` dashboard, power telemetry, and dynamic health thresholds. - Expand Invariant 5 to codify the zero-latency requirement for CLI observability commands.
…etry - Add a feature bullet for "Active Observability" detailing the new power telemetry and cached warning capabilities. - Update the `status` command description in the Command Reference to reflect its new role as a real-time health dashboard.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Context
Previously,
git pulsar statusacted as a passive data-fetcher. If the daemon throttled backups due to low battery or stalled on a 100MB file, the user had to manually investigate or calculate timestamps to figure out why the pipeline stopped.This PR upgrades the
statuscommand into a zero-latency observability dashboard, surfacing critical context (power telemetry, session drift, and pipeline blockers) directly to the user without blocking the main thread or triggering live network calls.Key Changes
ops.py,daemon.py,cli.py): * Extractedhas_large_files()from the daemon loop intoops.pyto decouple pipeline blocker detection from background execution._check_repo_health()to dynamically scale its stall threshold based on the repository's configuredcommit_interval.cli.py):.git/pulsar_drift_statecache into the status panel, appending a prominent divergence warning if a newer remote session exists.dataset.csv > 100MB) are stalling the commit loop.test_cli.py,test_ops.py,test_daemon.py): * Fixed broken mocks resulting from theops.pyrefactor.get_systemfactory insidetest_ops.pyto preventMacOSStrategyfrom leaking actual AppleScript desktop notifications during test execution.README.md,src/README.md, andtests/README.mdto document the new "Active Observability" feature and the architectural boundaries of the zero-latency CLI.Verification
uv run pytest.pytest.mark.parametrize).git fetchcalls occur when runningstatus).