Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
966e7c5
e2e: the package road, asserted — both directions
xormania Sep 1, 2026
98d14ec
e2e: serve recipes truly locally; apply the audit's workflow hardening
xormania Sep 1, 2026
fcdf683
Merge pull request #4 from minspec/e2e/package-loop
xor-machine Sep 1, 2026
34a0372
e2e: the org gate — one canonical road test, callable from every repo
xormania Sep 1, 2026
910d09c
Merge pull request #5 from minspec/e2e/org-gate
xor-machine Sep 1, 2026
7c85f20
ops: the review — Codex sweeps, Grok audits, the conductor applies
xormania Sep 1, 2026
7b25a71
Merge pull request #6 from minspec/ops/review-lane
xor-machine Sep 1, 2026
4d697c2
ops: the dev-lane — dispatch/task/harness/telemetry
xormania Sep 1, 2026
b80e036
ops: take the guards — hooks + workflow/checks
xormania Sep 1, 2026
9f5af68
ops: the local-CI infra — Gitea + act_runner + lane image
xormania Sep 1, 2026
0e34524
ops: the term wall — the lane refuses names this organisation does no…
xormania Sep 1, 2026
27a138d
ops: ignore every lever job root
xormania Sep 1, 2026
017f64b
ops: term wall tests, from the contract — 15 real executions
xormania Sep 1, 2026
4a54cba
ops: the term wall to its contract — pattern from configuration only
xormania Sep 1, 2026
80a0c82
ops: pin the term wall's hit format and refusal classes
xormania Sep 1, 2026
63f1408
ops: pin how CI hands the term wall its pattern
xormania Sep 1, 2026
e24bd27
ops: pin the workbench CI actions to release commits
Sep 1, 2026
f5b6035
ops: bring the lane term wall onto the pinned contract
Sep 1, 2026
9149aa7
ops: run the term wall in CI
Sep 1, 2026
a84bc55
Merge pull request #7 from minspec/ops/dev-lane
xor-machine Sep 1, 2026
2672aab
repo: move the wall to the object-store scan
Sep 2, 2026
7809ad9
Merge pull request #8 from minspec/repo/ci-pass
xor-machine Sep 2, 2026
a4e0273
ops: treat killed zombies as terminated in tests
xormania Sep 2, 2026
27af79f
Merge pull request #11 from minspec/codex/review-dev-lane-tools-for-i…
xormania Sep 2, 2026
b49ba60
sync: dev -> main, resolved to dev
xormania Sep 2, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions ops/devlane/dispatch/tests/launch_support.py
Original file line number Diff line number Diff line change
Expand Up @@ -663,6 +663,18 @@ def sha256_file(path) -> str:


def pid_is_alive(pid: int) -> bool:
# A group SIGKILL can leave a descendant as a zombie until the host's
# init process reaps it. ``kill(pid, 0)`` still succeeds for zombies,
# even though they cannot execute and therefore are not survivors of the
# isolation boundary. Check procfs first so the process-group assertion
# measures live workers rather than the reaping behaviour of PID 1 (which
# is notably delayed in some CI containers).
stat = Path(f"/proc/{pid}/stat")
try:
if stat.read_text(encoding="utf-8").split()[2] == "Z":
return False
except (FileNotFoundError, IndexError, OSError):
pass
try:
os.kill(pid, 0)
except ProcessLookupError:
Expand Down
8 changes: 8 additions & 0 deletions ops/devlane/task/tests/test_run.py
Original file line number Diff line number Diff line change
Expand Up @@ -1307,6 +1307,14 @@ def _orphan_maker(self):

@staticmethod
def _alive(pid):
# kill(0) also reports zombies as present. A killed orphan can stay
# zombied until PID 1 reaps it in a container, but it is no longer a
# runnable descendant and must not make this isolation check flaky.
try:
if Path(f"/proc/{pid}/stat").read_text().split()[2] == "Z":
return False
except (FileNotFoundError, IndexError, OSError):
pass
try:
os.kill(pid, 0)
return True
Expand Down
Loading