myxce/.kiro/steering
Rongsong Shen 6dd70f1091
feat(build): no fork in multi-threaded XCE processes, enforced by check-no-fork
Design constraint (tech.md "Process Creation"): the controller, scheduler,
xcecd and anything that starts libxce threads never call fork, vfork,
forkpty, daemon, system, popen or uv_spawn; children start with posix_spawn()
or a systemd unit. A process proven single-threaded may fork, marked
/* xce-fork-ok: <why> */. Tests, harness, autoscaler (not finalized; bug-1969)
and the Go frontend are out of scope.

- scripts/check-no-fork.py scans src/{controller,scheduler,lib,worker}
  (comment/string/#if 0 aware); runs as meson test "no-fork rule" in the
  lib/controller/scheduler/worker suites and in the pre-commit hook.
- worker: drop xcecd's unused fork-based worker start paths
  (process_manager_start_process, process_manager_start_worker; xcecd
  starts xcecd_worker over D-Bus) and a dead #if 0 daemonize fork.
- xcecd_worker's fork/uv_spawn/system calls are marked: its call graph
  from main(), callbacks included, reaches no pthread_create or libuv
  thread-pool call.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-10 13:35:52 +00:00
..
api-standards.md docs: OpenWolf pointer cleanup + redirect-hint checklist item (bug-1700 lesson) 2026-08-27 08:27:17 +00:00
build-deployment.md docs(controller-peers-env-fallback): document XCE_CONTROLLER_PEERS in the build/deployment steering (task 6.1) 2026-10-03 08:23:32 +00:00
config-design.md save status 2026-07-21 08:24:44 +00:00
error-handling.md update documents 2026-08-10 17:51:51 +08:00
ha-async-io.md docs: sync skills and steering docs with bug-1562..1566 findings 2026-08-17 10:21:25 +00:00
job-config-layering.md docs(steering): one owner per job attribute; pre/post-exec moves to the app profile 2026-10-10 03:19:20 +00:00
persistence.md docs: formalize save/restore field-completeness as a standing invariant 2026-08-27 08:59:48 +00:00
product.md update documents 2026-08-10 17:51:51 +08:00
resource-accounting.md docs(resource-accounting): explain why admission control doesn't query live 2026-08-31 07:28:00 +00:00
roadmap.md docs(specs): record xce-node-manager interactions with service and provisioning specs 2026-10-10 07:46:24 +00:00
scheduler-driver-equivalence.md docs(scheduler): correct stale bug-1611 status and driver-equivalence steering 2026-09-19 14:01:09 +00:00
security.md docs(apiserver): document security defaults changed by bug-1945..1952 2026-10-10 08:58:20 +00:00
structure.md docs(xce-harness-component): list harness in structure.md 2026-09-14 07:56:15 +00:00
tech.md feat(build): no fork in multi-threaded XCE processes, enforced by check-no-fork 2026-10-10 13:35:52 +00:00
testing.md feat(eliminate-frontend-makefile): task 3.3 - update live documentation (11 files) 2026-09-03 14:22:54 +00:00