6 Commits
Author SHA1 Message Date
esengine 0e03a900b5 docs: bring the contract documents up to the docs standard
Add owner headers to twelve contract and design documents, split their
over-wide paragraphs into rules, route their ownership to the primary
named in CODEOWNERS, and treat the generated protocol index as a
machine-read file. Baseline: doc-owner 40 -> 27, doc-prose 2276 -> 2147.
2026-09-29 09:40:04 -07:00
esengine f352dfbecc chore: remove the IM bot gateway
Studio has no bot surface. On this line the QQ / Feishu / WeChat gateway
is reachable only as `reasonix bot`, a CLI command no Studio user starts,
and it carries about 12.9k lines: internal/bot, internal/botruntime, the
subcommand, its config section and its docs. It is also where the recent
Windows heap-corruption and gateway-wedge fixes had to land.

What goes with it:

- `reasonix bot`, its completion spec and its usage line in three locales.
- The typed [bot] config, its defaults, render block, model-ref and
  migration hooks, and the 0.x QQ import.
- GatewayAPI, the control port only the gateway named, and the two
  passive inbox variants only it called; neterr.IsTransient and
  textutil.FitGraphemeBytes, which only it used.
- The bot entries in repolint's layer and frontend-parity declarations,
  the bot race-test target in CI, BOT_GUIDE.md and its images, and the
  [bot] example.

What stays, and why:

- The user config is shared with 1.x installs, which still run the
  gateway. [bot] now decodes into an opaque table and is written back
  unchanged on every save, so a settings change here does not switch
  that gateway off or erase its allowlists. Credential variables the
  table names are still kept out of subprocess environments.
- surface.Bot stays: usage records on disk carry it, and dropping it
  would re-attribute them to another frontend.
- SECURITY.md and the crash-report worker still describe the bot, since
  they serve every release line.

Budgets only fall: frontend-parity drops by 20 edges and the reclaimed
headroom is recorded with -update.
2026-09-17 02:02:48 -07:00
esengine 3f530b5f58 docs(subagent): record how serve renders a delegated call 2026-08-10 09:18:55 -07:00
SivanCola c17a09c671 fix: explicit group lifecycle terminals for parallel_tasks/fleet
The backend now emits an explicit lifecycle for group cards: running when
children start and exactly one terminal (completed/cancelled/failed,
including validation failures and zero-child cancellation) after the group
settles, keyed by the group call ID. Frontends no longer infer group
completion from the children observed so far — a background group's children
dispatch asynchronously, so a job-id result arriving first or a fast first
child finishing before later children dispatch could previously settle the
group permanently while children were still running. The reducer now settles
group cards only from their own terminal event; the child-inference helpers
are removed. Adds reverse-order, zero-child cancellation, group failure, and
group lifecycle integration tests.
2026-08-05 11:10:03 +08:00
SivanCola d9b920272b fix: honor subagent progress contract on review findings
- desktop: a background parallel_tasks/fleet whose job-id result arrives
  before any child dispatched now stays running instead of settling as
  completed on an empty progress tree; it settles when children appear and
  finish, and a cancelled/failed aggregate settles it regardless.
- serve: reserved reasonix.subagent.* ToolProgress channels are recognized
  and ignored, so sub-agent status/reasoning/text never land in ordinary
  tool output.
- agent: ordinary phase transitions now share the 32 events/s group budget
  with content previews (only initial queued/running and the terminal event
  bypass it), so a fleet of phase-flapping children cannot exceed the
  advertised queue protection.
- agent: a budget trim that drops buffered content propagates the truncation
  on the next actually-emitted channel, or surfaces a truncated notice at
  the terminal flush, so frontends always learn that preview content was
  discarded.
- tests: reverse-order background group lifecycle, budget sharing across
  statuses and previews, and trim-truncation propagation; docs updated to
  match the enforced contract.
2026-08-05 10:07:23 +08:00
SivanCola d377c34459 docs: document local subagent progress behavior
Describe the reserved ToolProgress channel contract, the phase state
machine, pacing and memory bounds, what is deliberately not done (no
parent-body leakage, no persistence, no Remote/ACP/bot changes), and the
desktop and CLI behaviors in English and Simplified Chinese.
2026-08-05 09:31:34 +08:00