Repository navigation
feat(cli): make goals and the timing tools one system - #14504
Merged
Merged
Conversation
iscekic
marked this pull request as draft
September 23, 2026 13:57
Contributor
Code Review SummaryStatus: No Issues Found | Recommendation: Merge The prior finding on the session-removal cancel test is resolved: Files Reviewed (1 file)
Previous Review Summaries (3 snapshots, latest commit 1dec5d3)Current summary above is authoritative. Previous snapshots are kept for context only. Previous review (commit 1dec5d3)Status: 1 Issue Found | Recommendation: Address before merge Overview
Issue Details (click to expand)SUGGESTION
Files Reviewed (5 files)
Fix these issues in Kilo Cloud Previous review (commit 0c7ee10)Status: 2 Issues Found | Recommendation: Address before merge Overview
Issue Details (click to expand)WARNING
SUGGESTION
Files Reviewed (15 files)
Fix these issues in Kilo Cloud Previous review (commit 0c988f6)Status: 7 Issues Found | Recommendation: Address before merge Overview
Issue Details (click to expand)WARNING
SUGGESTION
Files Reviewed (24 files)
Reviewed by deepseek-v4.1-flash · Input: 0 · Output: 0 · Cached: 0 Review guidance: REVIEW.md from base branch |
iscekic
added a commit
that referenced
this pull request
Sep 23, 2026
iscekic
force-pushed
the
kwf/goal-timing-tools-synergy-99ac
branch
from
September 23, 2026 17:06
3d9ad56 to
9b6c2dd
Compare
iscekic
added a commit
that referenced
this pull request
Sep 23, 2026
iscekic
force-pushed
the
kwf/goal-timing-tools-synergy-99ac
branch
from
September 23, 2026 21:33
1e1b5f2 to
0c7ee10
Compare
iscekic
marked this pull request as ready for review
September 23, 2026 21:54
iscekic
marked this pull request as draft
September 23, 2026 22:03
iscekic
force-pushed
the
kwf/goal-timing-tools-synergy-99ac
branch
from
September 23, 2026 23:00
0c7ee10 to
1dec5d3
Compare
iscekic
marked this pull request as ready for review
September 23, 2026 23:21
iscekic
marked this pull request as draft
September 23, 2026 23:42
iscekic
marked this pull request as ready for review
September 28, 2026 11:16
eshurakov
approved these changes
Sep 28, 2026
This was referenced Sep 27, 2026
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.
A goal can now wait on time, a scheduled task, or a background process and resume itself. A new
goal/link.tspairs the six scheduling tools with a wait record, a pending-fire queue, and a restart arm factory;runner.tssuspends the cycle when a wait is armed, andwakeup/resume.tsroutes the fire back through the same goal. Previously/goaland the timing tools were unlinked: scheduling counted as progress, so the loop ran another turn about five seconds later. Built against origin/main at516e9ca17e, which includes PR #14312 (dfeeb48bd8). This change also repairs the CLI CI failure it hit: three timing defects, in the goal suite's batch placement, the snapshot resume quiet period, and the wakeup tests' temp-directory teardown.Changelog for users
Goal waitingwith what it waits for, not active or paused.goal_report./goal pauseand/goal clearcancel the goal's armed wakeups and cron tasks and say so.Changelog for maintainers
packages/opencode/src/kilocode/session/goal/link.ts:94— Accepted:GoalLink.releasedeletes a removed session's wait record, queued fire, and arm closure. Session removal and archive call it; directory-keyed factories stay.packages/opencode/src/kilocode/session/goal/link.ts:186— Accepted:registerCleanupreturns a disposer; the Wakeup layer unregisters on teardown andcleanupsnapshots the list, so a rebuild cannot stack handlers.packages/opencode/src/kilocode/wakeup/resume.ts:60— Accepted: a failed resume clears the wait record, the question-gate hold, and the curb before it writespaused. The question tool returns and no wait leaks.packages/opencode/src/kilocode/session/goal/instructions.ts:10— Accepted: the curb allowlist inpolicy.tsnow includesbackground_process, so the gate matches the instruction text naming it as a valid first call.packages/opencode/src/kilocode/session/goal/instructions.ts:3— Accepted: the timed heuristic requires the time-based event to be the object ofwait for, so a passing mention of build or CI no longer curbs the goal.packages/opencode/src/kilocode/wakeup/index.ts:480— Accepted:runner.tssweeps the session's timers only when the action is notresume. Cancelling the awaited wakeup no longer cancels unrelated wakeups or cron tasks.packages/opencode/test/kilocode/wakeup/wakeup-resume.test.ts:439— Rejected as cited (no_change): thesewhenvalues are built inline just beforeWakeup.schedule, soresolvecannot see them as past. The mock-handler window in the cron test was raised to 3 s.script/check-opencode-promise-facades.ts— the named AppRuntime exception forwakeup-resume.test.tsrises from 39 to 47 calls, because the new cancel test drives the production Fire/resume path.packages/opencode/script/test-runner.ts—kilocode/session/goal.test.tsjoinsBATCH_EXCLUDES, so the 96-turn goal suite runs in its own process instead of sharing the fast-tier batch under CPU contention. The file still runs; no check is disabled.packages/opencode/src/snapshot/index.ts:921— resumed materialization now passes the same idle quiet period as a fresh snapshot. At zero delay its check could land after the first track created the alternates and repack behind it, defeating the quiet wait.packages/opencode/test/kilocode/wakeup/wakeup-cron.test.ts,wakeup-resume.test.ts— temp-directory teardown uses the retrying cleanup helper instead offs.rm, so Windows EBUSY/EACCES locks from SQLite no longer fail a test inside itsfinally.Review the snapshot call site first, then the test-runner entry. Goal and wakeup behavior is unchanged; only suite scheduling and teardown change.
Live evidence collected 2026-09-23 replaces the earlier unverified proof: the waiting state and its fire, cancel symmetry, the archived-session settle, the timed-objective curb, and
/goal clearwere proved live on the CLI. For the CI repair, the new evidence is the per-file goal, snapshot, and wakeup suites with typecheck, lint, and the annotation and facade guards; it replaces the earlier red full-suite run, and the full CLItest:cirun exceeded its 40-minute limit and is advisory, not a regression. Some optional end-to-end checks did not run.E2E proof
Owner request
E2E proof — log excerpts