From c0a83dbc945cc04fae09667ef771fe8b94c118f4 Mon Sep 17 00:00:00 2001 From: 0thernet Date: Sun, 4 Oct 2026 22:36:15 -0400 Subject: [PATCH] Prefer the required CI aggregate when the local scheduler is saturated The hraness-delivery block already treats Required on the pull request head as the final aggregate; this makes scheduler contention an explicit trigger for that path, keeps lane-bound work local, and preserves repository rules that require a local gate. Generated with [Devin](https://devin.ai) Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com> --- AGENTS.md | 1 + 1 file changed, 1 insertion(+) diff --git a/AGENTS.md b/AGENTS.md index 01eea5d..656b981 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -81,6 +81,7 @@ - Give each expensive focused validation command and external wait one owner. The integration owner reviews that evidence and runs the repository-required aggregate or final gate once after convergence. Reuse evidence only for the exact Git tree, command, lockfiles, toolchain, relevant environment, and validity period, and never to skip a required final integration, merge, release, deployment, or production-verification gate. - On Hraness development machines, use the installed host scheduler for heavyweight top-level commands when available. Keep ordinary work in the compute lane and give Mac-only validation one `mac-native` owner. Headless Chromium with a throwaway profile and a port-0 or per-worktree server runs as `--mode=heavy --lane=compute`; only work that uses the real signed-in browser profile takes the single `browser-auth` owner, and `--mode=exclusive` is only for fixed-port, native-device, performance, or machine-global work. - Before every push, run `check:fast` when the repository has it (format, lint, typecheck, and unit tests of the changed workspaces; no build, browser, or formal checking). Run the full `check` locally only when it is much faster than the CI round trip or covers a formal, native, or provider-live boundary CI cannot; `Required` on the pull request head is the final aggregate. +- When the host scheduler is saturated or a heavyweight gate would queue behind unrelated work, prefer that final aggregate: finish the focused local validation, open the pull request, and let `Required` run the broad suite on the PR head instead of holding a shared lease. Keep narrow tests, typecheck, and lint local in the edit loop; keep authenticated-browser, fixed-port, native-device, credential, and private-data work on the documented local lanes; and honor any repository rule that requires a local gate before pushing. - Dev and preview servers listen on `${PORT:-$(hra-port web)}` bound to 127.0.0.1, falling back to port 0 when `hra-port` is unavailable; scripts that own their server listen on port 0 and read the bound port back. Never assume a fixed port is free. - Keep one primary checkout per repository at `~/Documents/hraness/`. Put task checkouts at `~/Documents/--` with `git -C ~/Documents/hraness/ worktree add`, not a second full clone. Install shared command-line tools only from `main` or a published release, never from a task worktree or an unmerged branch. - When a task must wait on CI, watch the pull request's required check with `gh pr checks --required --watch --fail-fast`. When you read runs instead, filter by branch and head SHA (`gh run list --branch --commit `) and ignore `dynamic` (CodeQL), `pull_request_target`, and `workflow_run` events: they finish on their own schedule and say nothing about the gate.