Synced from monorepo
Changes: - Stop hooks for session lifecycle - Add x.ai/session/state and x.ai/session/import ACP methods - Deny-and-continue for auto-mode classifier blocks with denial limits - Drop codebase-upload from dhat soak test - scheduler_create upsert via task_id; retire one-shot tasks - Clipboard: copy file fallback + honest toasts for SSH/Apple Terminal - Polarity-safe syntax colors in minimal mode - Auto mode classifies unvetted env prefixes instead of hard-prompting - Add GROK_CLIPBOARD_NO_OSC52 kill switch to force OSC 52 off
This commit is contained in:
parent
7cfcb20d2b
commit
ba76b0a683
143 changed files with 9465 additions and 3419 deletions
|
|
@ -34,11 +34,18 @@ pub fn loop_schedule_instruction(args: &str) -> String {
|
|||
scheduling. Do NOT invent or assume a default interval.\n\n\
|
||||
## Action\n\
|
||||
1. Call scheduler_create with: interval (the compact string you derived), prompt,\n\
|
||||
recurring: true, fire_immediately: true. If the interval is unparseable, the tool\n\
|
||||
fire_immediately: true. If the interval is unparseable, the tool\n\
|
||||
returns an error — fix the interval string rather than guessing.\n\
|
||||
2. Confirm: what's scheduled, the cadence, that it auto-expires after 7 days,\n\
|
||||
and that they can cancel with scheduler_delete (include the job ID).\n\
|
||||
3. Do NOT execute the prompt inline. The scheduler will fire it immediately.\n\n\
|
||||
## Changing an existing loop\n\
|
||||
Call scheduler_create with its task_id and the fields that change; do not\n\
|
||||
delete and recreate. If later work changes what a loop should do, update its\n\
|
||||
prompt the same way.\n\n\
|
||||
## One-time delayed work\n\
|
||||
Scheduling is recurring-only. For \"do X once in N minutes\", run a background\n\
|
||||
terminal command (`sleep <secs> && <command>`); its completion notifies you.\n\n\
|
||||
## Input\n\
|
||||
{args}"
|
||||
)
|
||||
|
|
@ -193,6 +200,18 @@ mod tests {
|
|||
assert!(text.contains("<number><unit>"));
|
||||
assert!(text.contains("ask the user how often"));
|
||||
assert!(!text.contains("10m"), "no host-side default interval");
|
||||
assert!(
|
||||
!text.contains("recurring:"),
|
||||
"the retired one-shot flag must not be referenced"
|
||||
);
|
||||
assert!(
|
||||
text.contains("task_id"),
|
||||
"must teach in-place updates via task_id"
|
||||
);
|
||||
assert!(
|
||||
text.contains("delete and recreate"),
|
||||
"must steer away from delete+recreate"
|
||||
);
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
|
|
|||
Loading…
Reference in a new issue