Skip to content

Fix publisher runs for unsynced targets - #54

Merged
Kingson4Wu merged 1 commit into
devfrom
loop/alcove/bug-fix/1786540200000-alcove-bug-fix
Aug 12, 2026
Merged

Fix publisher runs for unsynced targets#54
Kingson4Wu merged 1 commit into
devfrom
loop/alcove/bug-fix/1786540200000-alcove-bug-fix

Conversation

@Kingson4Wu

Copy link
Copy Markdown
Contributor

Summary

  • Treat publisher definitions with targets missing from persisted state as due.
  • Add regression coverage for adding a new Apple Notes publisher target after existing targets recently synced.
  • Keep legacy naive timestamp coverage isolated by giving it complete default-target state.

Confirmed Bug

When a publisher definition gained a new target, _is_due() only considered existing target timestamps in persisted state. If the known targets synced recently, run_due() skipped the publisher and the new target did not publish until TTL expiry.

Verification

  • uv run pytest --no-cov tests/test_publishers.py::test_publisher_due_check_runs_when_definition_has_unsynced_targets
  • uv run pytest --no-cov tests/test_publishers.py
  • scripts/check-docs-drift.sh src/alcove/publishers.py tests/test_publishers.py
  • scripts/agent-quality-gate.sh --mode coach
  • scripts/check.sh

Notes

  • No docs update needed: this restores expected publisher scheduling behavior rather than changing the user-facing contract.
  • No dependency changes.
  • Push reported an existing Dependabot finding on the default branch; this bug-fix PR does not touch dependencies.

@codecov

codecov Bot commented Aug 12, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@Kingson4Wu
Kingson4Wu merged commit 615e66e into dev Aug 12, 2026
10 checks passed
@Kingson4Wu
Kingson4Wu deleted the loop/alcove/bug-fix/1786540200000-alcove-bug-fix branch August 12, 2026 16:15
@github-code-quality

Copy link
Copy Markdown

Code Coverage Overview

Languages: Python

Python / code-coverage/pytest

The overall coverage in commit f6c7655 in the loop/alcove/bug-fix/... branch is 89%. The coverage in commit 8cd58ef in the dev branch is 87%.

Show a code coverage summary of the most impacted files.
File dev 8cd58ef loop/alcove/bug-fix/... f6c7655 +/-
alcove/service_launchd.py 0% 78% +78%
alcove/dashboard_server.py 12% 97% +85%
alcove/radars/proposals.py 0% 91% +91%
alcove/service_task_health.py 0% 91% +91%
alcove/service_...ount_refresh.py 0% 91% +91%
alcove/mcp_managed_kb_tools.py 0% 96% +96%
alcove/service_...otifications.py 0% 96% +96%
alcove/profile_...ll_templates.py 0% 97% +97%
alcove/radars/explain.py 0% 98% +98%
alcove/entry_contracts.py 0% 98% +98%

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.

1 participant