Commit Graph

15 Commits

Author SHA1 Message Date
jj.wang 34b2ba1cc7 Runbook: live cron line, state dir, concurrency 0, P1-5 cutover notes 2026-10-21 07:49:48 +00:00
jj.wang 5ea931f24d Design: lean LXC dispatcher with remote-only terminals (P1-6 generic remote launch) 2026-10-21 07:41:07 +00:00
jj.wang a505c138e0 smoke: --labels to route the smoke item (e.g. model:sol) 2026-10-21 07:27:27 +00:00
jj.wang bcc5fd44e7 Cron entry script for oregon (tick every 2 minutes under exec --secret-env) 2026-10-21 07:19:39 +00:00
jj.wang 1ae44eb705 Allow concurrency 0 to pause a terminal
A paused terminal gets no new runs and is not probed; in-flight runs still finish.
2026-10-21 07:17:29 +00:00
jj.wang b17b1f1587 Live config for oregon: GWENT tenant, win10 codex + oregon claude-code
codex is not installed on oregon, so oregon only offers claude-code. The codex
resume template passes the sandbox as a -c override (exec resume takes no -s).
2026-10-21 07:17:14 +00:00
jj.wang ca2b47eb5f Docs: binary resolution, cancellation, progress cap, phase-1 deviations
- runbook: how executor binaries are resolved (bins or PATH) and what that
  assumes on oregon (no codex installed) and win10; cancellation and
  max_progress_rounds in the item lifecycle; secrets scrubbed from children.
- design: blocked-by ordering is a TODO (not read by the scheduler); failure
  classification, success-when-tagged, one-time immediate rebuild, retries
  outside the thread-round budget, ID-based new-comment filter.
- executor contract: how core reads ExecResult, kill used for cancel, Windows
  quoting assumptions, codex exec resume without -C/-s.
2026-10-21 07:14:20 +00:00
jj.wang efbc5f6e27 Core: cancel moved runs, retry bookkeeping, progress cap, safer classification
- A run whose item leaves In Progress is killed, gets a [worker] cancel comment,
  frees its terminal slot and serialize group and keeps its thread id; if the
  kill fails the slot stays taken and the cancel is retried next tick.
- Transient retries are the same logical round: they do not count toward
  max_rounds_per_thread and do not trigger a max-rounds rebuild.
- New project setting max_progress_rounds (default 12): after that many
  consecutive [progress] rounds the item goes to Waiting (answerer) with a note.
- retry/rebuild markers are consumed only after the run launched, so a failed
  start no longer leaves an In Progress item that is never picked again; a
  rebuild is no longer reported as a retry.
- State is saved after every finished round and every launched run.
- Failure classification: transient patterns only look at the tail, and an
  exit-0 failure is logic (never retried) unless the tail shows a transient error.
- First-line tag: tolerate BOM and a leading code fence / rule line.
- Start comment notes when a handoff summary was attached.
2026-10-21 07:13:18 +00:00
jj.wang 00d42267e5 Harden transports and state files
- Executors and relay helpers get an environment without any configured
  Plane token / webhook secret (design 8: executors hold no Plane credentials).
- Windows runner: Set-Location -LiteralPath, and a failed cd writes exit=97
  instead of running the agent in the wrong directory.
- schtasks launch: escape apostrophes and pass the script path as \"...\" so
  paths with spaces survive PowerShell 5.1 native quoting.
- State and heartbeat files are written temp + fsync + rename.
- Tests for the above plus codex run/resume command shapes and unique run dirs.
2026-10-21 07:10:41 +00:00
jj.wang 08e3a7cc55 Design: deployment placement (oregon first, dedicated agentd-01 node from phase 3) 2026-10-21 07:04:59 +00:00
jj.wang 8dc8c465a2 Executor contract and runbook 2026-10-21 07:04:32 +00:00
jj.wang 31850c4a81 Scheduling core, state store, CLI and unit tests
One tick polls in-flight runs, posts results, classifies the first line and
moves state/assignee; failures get a structured note with transient retry and
backoff, timeouts are killed and handed over, resume failures and long threads
rebuild with a handoff summary. Then the lowest Todo items are dispatched within
terminal concurrency and serialize groups, and a heartbeat is written.
CLI: tick, new, show, comment, state, assign, smoke, check-config.
2026-10-21 07:04:32 +00:00
jj.wang 9535122c99 Plane client, transports and executor adapters
Plane: paginated issue/comment/state/label/member access, one client per
terminal identity. Transports: local (setsid-detached runner) and warpgate-ssh
(win10-ps.sh / win10-put.sh relay, schtasks launch, taskkill on timeout).
Executors share a runner shape (prompt.md, exit.txt marker) with codex,
claude-code and shell adapters for last message and thread id.
2026-10-21 07:04:32 +00:00
jj.wang 28e71f3ba7 Config schema, example config and validating loader
config/schema.json mirrors design §5 (terminals, executors, projects with routing,
retry, timeouts). agentd/config.py loads YAML, validates with jsonschema when
available or a small built-in draft-07 subset, adds cross-reference checks, and
maps token_key to the environment variable injected by agent-access exec.
2026-10-21 07:04:32 +00:00
jj.wang df4b873d0b Initial design for plane-agentd: Plane-driven generic agent dispatcher 2026-10-21 06:49:31 +00:00