@prevalentware/opencode-goal-plugin 0.1.32 → 0.1.34
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +7 -3
- package/dist/server.js +858 -88
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -159,8 +159,8 @@ Defaults:
|
|
|
159
159
|
- `defer_while_tasks_active`: `true`; when enabled, goal auto-continuation waits for active OpenCode Task child sessions and their orchestrator reconciliation before sending the next goal prompt.
|
|
160
160
|
- `max_auto_turns`: `25`
|
|
161
161
|
- `min_continue_interval_seconds`: `3`
|
|
162
|
-
- `max_turn_time`: unset by default; set a positive number of seconds to retry one active-goal continuation prompt when a model turn remains busy for that long. Each new busy event resets the watchdog. Idle, built-in retry, session deletion, active Task children, and restricted agents suppress the retry. Watchdog retries are independent of `min_continue_interval_seconds` and
|
|
163
|
-
- `max_prompt_failures`: `3
|
|
162
|
+
- `max_turn_time`: unset by default; set a positive number of seconds to retry one active-goal continuation prompt when a model turn remains busy for that long. Each new busy event resets the watchdog. Idle, built-in retry, session deletion, active Task children, and restricted agents suppress the retry. Watchdog retries are independent of `min_continue_interval_seconds` and never consume auto-turn or no-progress budgets, but recognized transport failures still count toward the `max_prompt_failures` ceiling.
|
|
163
|
+
- `max_prompt_failures`: `3`; consecutive transport or no-response continuation failures pause the goal at this ceiling. Prompt delivery alone does not reset the count; substantive assistant or tool progress, a new goal, or an explicit resume does.
|
|
164
164
|
- `default_token_budget`: unset by default; when set, new goals inherit this token budget.
|
|
165
165
|
- `max_goal_duration_seconds`: unset by default; when set, new goals inherit this elapsed-time safety limit.
|
|
166
166
|
- `no_progress_token_threshold`: `50`; output-token floor used to judge whether a goal continuation turn made progress.
|
|
@@ -225,7 +225,11 @@ If `XDG_DATA_HOME` is not set, the default is:
|
|
|
225
225
|
|
|
226
226
|
Set `OPENCODE_GOAL_STATE_PATH` to use a custom file.
|
|
227
227
|
|
|
228
|
-
The state file is written atomically with owner-only permissions
|
|
228
|
+
The state file is written atomically through a same-directory temp file: the final path is only ever replaced by a fully-flushed file, so after a crash the state is the previous or the new valid version, never a torn one. The file is created with owner-only permissions where the host filesystem supports them, and the temp name is a random UUID opened exclusively so concurrent writers cannot collide.
|
|
229
|
+
|
|
230
|
+
Ordinary fsync improves crash consistency but is not `F_FULLFSYNC`, so sudden power loss on macOS/APFS is not an absolute durability guarantee; where the platform cannot fsync the parent directory, a crash may leave the old or the new state file (both valid), never a partially-written one. Existing active goals recover from disk with their full objective, budget, history, and checkpoint metadata.
|
|
231
|
+
|
|
232
|
+
If the rename succeeds but syncing the parent directory reports a genuine I/O error, the mutation reports a write failure even though the new valid state may already be present. This avoids claiming durability that the filesystem did not confirm.
|
|
229
233
|
|
|
230
234
|
## Credits
|
|
231
235
|
|