Skip to content

Add read-only dedicated Goal pulse-check - #163

Merged
ByBrawe merged 6 commits into
mainfrom
feat/161-goal-pulse-check
Sep 24, 2026
Merged

ByBrawe merged 6 commits into
mainfrom
feat/161-goal-pulse-check

Conversation

@ByBrawe

@ByBrawe ByBrawe commented Sep 24, 2026

Copy link
Copy Markdown
Owner

Fixes #161.

Adds a separate non-prompt-producing opencode-loopd pulse-check mode for dedicated Goals.

Behavior:

  • reads .opencode/goals/*.json and reuses the dedicated-Goal continuation predicate;
  • alerts only while the Goal is active;
  • uses durable Goal updatedAt plus progress/revision changes as the stall authority;
  • samples OpenCode session-list updated time only as corroborating telemetry;
  • stores episode state only under .opencode/opencode-loop/pulse-check.json;
  • never writes Goal state, dispatches a prompt, or runs /goal resume;
  • emits at most one alert per stall episode and re-arms on Goal activity/status changes;
  • supports one-shot execution and repeating --every checks, plus optional --goal <goal|session> targeting.

The shared state update is lock-protected so overlapping daemon/systemd one-shots cannot double-alert. Regression coverage proves one-alert-per-episode, waiting-user suppression, re-arming, read-only Goal state, no OpenCode run dispatch, and concurrent one-shot deduplication.

Copilot AI lite review requested due to automatic review settings September 24, 2026 19:48

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 reached their quota limit.

@ByBrawe
ByBrawe merged commit a2ea9a6 into main Sep 24, 2026
12 checks passed
@github-actions
github-actions Bot deleted the feat/161-goal-pulse-check branch September 24, 2026 19:51
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.

Feature: goal pulse-check — alert when an active Goal stops changing

2 participants