- Merge lane base check: develop 18a4daee1bf1 Done
Base check certified: develop 18a4daee1bf1 passed the full gate (56,644 tests, 0 failed, 612s; one flaky stage retried, so the gate ran 3×). Nothing to merge or eject; queue is empty. Memory: none applied.
- Operators edit other organization projects tasks Done
Operators now edit another org's project, task, board rows and account in place. Each write goes as the row's org (X-Jaah-Act-As) and its audit row records acting_as. OtherOrgNotice removed. Quick gate green, review lanes pass. PR #6709 merged (18a4daee1), deploy succeeded. Follow-up draft #9221. Memory: used mem-15203, mem-14612; proposed none.
- Merge lane: jaah Done
Merged PR #6709 (task 9214) at 18a4daee after quick gate green on merged tree (6003 passed). Nothing ejected; queue empty, develop not red. Time 54s (gate 34s). Memory: none applied.
- Merge lane base check: develop 26c9fca0af52 Done
Base check develop 26c9fca0af52 certified green: merge_lane.py run full gate passed in 655s (56,648 tests, 0 failed), tree ccbe3b46. Nothing merged or ejected. Memory: none applied.
- Restructure credential naming for scalability Done
Credentials now have one structural home (system/org/project/personal) shown as a locked prefix; lowercase names unique per home; runner paths org/ projects/<p>/ me/; no by-name lookups; operators edit any org's credentials via act-as. 4 PRs merged, dev deployed; 39 prod + 46 dev rows renamed in the UI. Prod personal/connection renames and project homes wait for the next master promotion (listed in report). Drafts 9194, 9214. Memory: none applied; proposed 0.
- Merge lane: jaah Done
Merged PR #6708 (task 9182) at 26c9fca0 after quick gate green (6003 passed; batch 56s, gate 36s). None ejected. Queue empty, develop green, Jaah Deploy success. Memory: none applied.
- Merge lane base check: develop fa54f82bccc7 Done
Base check develop fa54f82bccc7: certified green — full gate via merge_lane.py run, 656s, 56631 passed / 0 failed (tree 14bbcedf). Nothing merged or ejected; develop green. Memory: none applied.
- Merge lane: jaah Done
Merged PR #6706 (Task 9211) → fa54f82bc; quick gate green on merged tree (6014 passed). 0 ejected, queue empty, develop not red. Batch 52s (gate 35s). Memory: none applied.
- Fix confusing Slack credential missing error Done
Signup card's Slack failure now names jaah's own setting ("no Slack credential is set in Settings > Integrations > Slack") instead of the misleading slack-credential-missing. Tests + quick gate green; PR #6706 queued to merge lane. Memory: none applied.
- Merge lane base check: develop 63c148b0d5fa Done
Base check: develop 63c148b0d5fa certified. Full gate green in 872s (56,871 passed, 0 failed, 1 attempt); tree fd0a8f919b05. Nothing merged or ejected. Memory: none applied.
- Merge lane: jaah Done
Merged PR #6705 (Task 9208) as 6fd6578d; quick gate green on merged tree (6003 passed). 0 ejected, queue empty. develop_red record names superseded 58b33070 (fixed by #6704); base check 9209 on 63c148b0 running. Memory: none applied.
- Documentation writer run for Jaah Done
Sessions reference page refreshed from prod with six new captures; Changelog and Guides had nothing due; Reference checked with no gaps. Quick gate green. PR #6705 queued to the merge lane. Visual check done: the captures are legible and show no personal data. Memory: used mem-22234, mem-15203; none proposed.
- Merge lane: jaah Done
Merged PR #6704 (Task 9206) after the quick gate passed, as 63c148b; no PR ejected. The full gate on develop 63c148b is green (56631 passed); this merge fixes the red NodeVault e2e test. Queue empty. Memory: none applied.
- Fix red develop 58b3307079fa Done
Fixed red develop: the nodevault-credentials e2e spec used a ^-anchored name locator, which broke once Task 9182 put the credential's home before its name. Spec passes 2/2 and quick gate is green. PR #6704 is queued in the merge lane.
- Merge lane base check: develop 58b3307079fa Done
Base check develop 58b3307: RED (lane recorded develop_red). Only failure: e2e/nodevault-credentials.spec.ts:76 (NodeVault seal/untick→KMS) in frontend smoke, red after gate 3×; 56629 passed. Nothing queued, nothing merged/ejected. Memory: none applied.
- Merge lane: jaah Done
Merged #6703 (Task 9203) at 58b330707 after the quick gate passed on the merged tree (6014 tests). Nothing ejected. It fixes develop's red agent-sdk conformance stage, and packages/agent-sdk/check.sh now passes on develop. Queue is empty. Memory: none applied.
- Fix red develop 391d944fb23e Done
Fixed red develop: regenerated the stale agent-sdk spec page (credential.get row, broken by Task 9182) and reworded its "e.g." so the row isn't truncated. SDK suite + quick gate green; PR #6703 queued to the merge lane. Memory: none applied.
- Merge lane base check: develop 391d944fb23e Done
Base check develop 391d944fb23e: develop_red (gate 2×, 8686 passed). Agent SDK suite: packages/agent-sdk/spec/README.md stale after Task 9182's credential.get text (agent_vocabulary.py:821); re-render alone truncates at "e.g". Queue empty. Memory: none applied.
- Merge lane: jaah Done
Merged #6702 (task 9200) → 391d944 on a green quick gate (6014 passed); nothing ejected; queue empty. Develop was already red at 476bb9c before this batch (API credential/telegram/signup tests); the base check on 391d944 will confirm the API tests. Memory: none applied.
- Fix red develop 476bb9c9dfe6 Done
Fixed red develop by updating tests for Task 9182's credential paths and per-home names, and regenerating the jaah-extension spec. Changed-area tests (220 api + jaahd spec) and the quick gate are green. PR #6702 is queued in the merge lane.
- Merge lane base check: develop 476bb9c9dfe6 Done
Base check develop 476bb9c9dfe6: develop_red (lane-reported). Full gate 528s, 8 failed; 7 reproduce alone — credential path-naming fallout (credential_crypto, seal_flow, signup, telegram x2, jaah-extension.json spec drift). Nothing merged; fix task filed by CP.
- Merge lane: jaah Done
Merged PR #6701 (task 9182) → develop 476bb9c9 after quick gate green (6003 passed; 52s, gate 34s). No ejections. Queue empty. Stale develop_red test (pre-merge-selection-selftest) re-run on develop: 43 passed. Memory: none applied.
- Merge lane base check: develop b7ff01cd5261 Done
Base check develop b7ff01cd5: red (recorded). Cause: Task 9182 renamed a credentials-feed e2e title (copy-name→copy-path) and the pre-merge selection selftest still named the old one. Fixed forward in #6698, merged as d021e70; Jaah Deploy succeeded. Memory: none applied.
- Merge lane: jaah Done
Merged #6697, #6698, #6699, #6700 (quick gate green, 6003 passed each batch); 0 ejected. Fixed develop red (pre-merge-selection-selftest, stale oracle title from #6696) via #6700; develop tip 8b62e808 passes. Memory: none applied.
- Fix red develop b7ff01cd5261 Done
Fixed red develop: pre-merge selftest still named the old "copy-name" credentials-feed oracle title after Task 9182 renamed it to "copy-path"; updated the title. Selftest and quick gate green; PR #6699 queued. Memory: none applied.
- Merge lane: jaah Done
Merged PR #6696 (task 9182) at b7ff01c after quick gate green on merged tree (6003 tests). Nothing ejected; queue empty, develop not red. Time 54s (gate 35s). Memory: none applied.
- Restrict event notification access to authorized users Done
Billing and the node alerts are now shown, settable and sent only to org Owners/Admins (node alerts newly reach them), and trigger notices go to the owner only while they can read the project. Quick gate green; PR #6694 merged; Jaah Deploy succeeded. Visual check: members see 12 rows, admins 16. Draft #9188 filed. Memory: none applied.
- Merge lane base check: develop 0c474ec4b93e Done
develop 0c474ec4b93e certified: merge_lane.py run full gate green in 674s (56,570 passed, 0 failed), tree e60962ea. Nothing merged or ejected; no fix task needed. Memory: none applied.
- Merge lane: jaah Done
Merged #6695 (Task 9185) → 0c474ec4b9 after quick gate green (6014 passed). First try requeued on a transient forge read of the lane's own pending status; retry merged. Nothing ejected; queue empty, develop not red. Time 50s: gate 31s. Memory: none applied.
- Repository initialization fails with connection error Done
Repo create for a hand-off owner now opens a GitHub OAuth approval popup, keeps the token as the connection, and creates the repo. PR #6693 merged (647192880), Jaah Deploy green. Visual check done. Filed draft #9185. Memory: none applied.
- GitHub credential picker shows unknown for designated Done
Settings credential pickers now name org-zero credentials under any operator org filter; a 404 says "Deleted credential"/"Deleted or not shared". Quick gate + tests green, visual check done (both names shown). PR #6695 queued to the lane. Deferred: picker option list still filter-narrowed. Memory: used mem-18077; proposed 0.
- Merge lane: jaah Done
Merged PR #6694 (Task 9180) into develop at 183cf821. The quick gate on the merged tree passed (6014 tests). Nothing was ejected, the queue is empty and develop is not red. Took 54s, 35s of it the gate. Memory: none applied.
- Merge lane: jaah Done
Merged PR #6693 (Task 9178) at 64719288 after the quick gate on the merged tree passed (6003 tests). Nothing ejected. Queue empty, develop green (develop_red null). Batch took 61s: gate 42s, merge 8s. Memory: none applied.
- Merge lane base check: develop 8b447cde4486 Done
develop 8b447cde4486 certified: full gate green via merge_lane.py run (56773 passed, 0 failed, 803s). Nothing merged or ejected; queue empty, no breaches. Memory: none applied.
- Merge lane: jaah Done
Merged PR #6692 (task 9184) at 09f1d20ecf after a green quick gate on the merged tree (6003 passed). Nothing ejected; queue empty; develop not red, no health breaches. Time 54s (gate 36s). Memory: none applied.
- Documentation writing for Jaah console application Done
Docs-writer: Audit page refreshed on prod with admin captures, terminal WebSocket refusal body/429 fixed, Changelog 2026-10-22 → v1.2.3764 (+1 bullet). Guides nothing due. Quick gate green; PR #6692 queued to merge lane. Memory: used mem-22234, mem-15203; proposed none.
- Merge lane: jaah Done
Merged PR #6691 (Task 9173) as 34c90a6b after the quick gate passed on the merged tree (6003 tests). Nothing ejected. Queue empty, develop not red, no health breaches. Batch took 59s, 41s of it gating. Memory: none applied.
- Show Slack display name in profile alerts Done
Slack Connect stores the sender's users.info display name (new users:read scope); Profile/Users Slack line shows @name, falls back to member id. API+web tests, quick gate green, visual check OK; PR #6691 queued. Older installs need reinstall for names. Memory: none applied.
- Merge lane: jaah Done
Merged #6690 (task 9177) at 8b447cd after quick gate green on merged tree (6014 passed); 0 ejected. Queue empty, develop not red, no health breaches. Time 52s (gate 34s). Memory: none applied.
- Disable integration branch field until repository Done
Integration branch is now hidden until a Repo URL is entered (New project wizard + new repo rows). Quick gate and project tests green; visual check at 1366/390px clean. PR #6690 queued to merge lane.
- Enable Microsoft, Azure DevOps, GitLab, BitBucket Done
- Merge lane base check: develop 4b326f38c04c Done
develop 4b326f38c04c certified: full gate green via merge_lane.py run (653s, 56532 passed, 0 failed), event=certified. Nothing merged or ejected; integration branch green. Memory: none applied.
- Chrome windows showing task state changes Done
Red-dot tab: native EventSource closes for good on an HTTP error (deploy 502) and was never reopened, so the tab sat on a 30s poll. Now reopens with backoff and live views re-read on resume. Repro'd live, PR #6688 merged, deploy green. Memory: proposed 1 gotcha.
- Fix inefficient use of space in layout Done
Profile › Alerts compacted: one line per channel (Disconnect replaces ×, only the username shown), one Off/Brief/Full switch per event in two columns, name fields on one row; docs updated. PR #6686 merged (a75d561), deploy green. Slack @name → draft #9173. Memory: none applied.
- Merge lane: jaah Done
Merged PR #6688 (Task 9171) at 4b326f3 after quick gate green on merged tree (6003 tests). None ejected. Queue empty, develop not red. Memory: none applied.
- Merge lane: jaah Done
Merged #6686 and #6687 (quick gate green on merged tree, 6014 tests, 48s batch); none ejected; queue empty, develop not red. Memory: none applied.
- Merge lane base check: develop 608e99ffaf6d Done
develop 608e99ffaf6d certified green by merge_lane.py run: full gate exit 0 in 698s, 56521 passed / 0 failed (tree cd63c043). Nothing ejected; no fix task. Memory: none applied.
- Merge lane: jaah Done
Merged PR #6684 (task 8669) → 608e99ff after quick gate green on merged tree (6003 passed). None ejected. Queue empty; develop not reported red. Batch 53s (gate 34s). Memory: none applied.
- Merge lane base check: develop 5654bc8c89cd Done
Base check develop 5654bc8c certified: merge_lane.py run full gate green (56,520 passed, 0 failed, 628s), event=certified. Nothing merged or ejected; develop green. Memory: none applied.
- Merge lane: jaah Done
Merged PR #6683 (Task 9164) at 5654bc8c after quick gate green on merged tree (6014 passed). Nothing ejected; queue empty, develop not red. Time 53s (gate 35s). Memory: none applied.
- Jaah's continuous task creation and charter review Done
Cause: coder charter told runners to file every out-of-scope finding (improvements too) as a task. Tightened: report is default; drafts only for bugs, security, UX. Project instructions unchanged. Quick gate green; PR #6683 queued. Memory: none applied.
- Merge lane base check: develop 000cef29f749 Done
develop 000cef29f749 certified green: merge_lane.py run full gate exit 0 in 686s, 56519 passed / 0 failed (tree 79e737f3). Nothing merged or ejected. Memory: none applied.
- Merge lane: jaah Done
Merged PR #6682 (task 8669) → 2187c266 after quick gate green on merged tree (6014 passed). 0 ejected; queue empty. develop_red evidence names stale ancestor 3e6be770 (fixed by #6679); base check on 000cef29 still open. Memory: none applied.
- Merge lane: jaah Done
Merged #6678, #6679, #6680; 0 ejected. Develop's stale-test red (Task 9135 refusal detail) was fixed by #6679; the focused test passes on develop tip 000cef29f. Queue empty. Memory: used mem-14612 (advisory); proposed 0.
- Fix red develop 3e6be7706080 Done
Updated stale test_groups_api refused-create test to the new 4xx refusal-detail capture (from 4db455f96). Groups suite 42 passed, quick gate green; PR #6679 queued in merge lane. Memory: none applied.
- Merge lane base check: develop 3e6be7706080 Done
Base check develop 3e6be77: RED (2×, deterministic). The only failure is test_groups_api.py::test_a_rejected_create_is_recorded_with_its_refusing_status:659, still expecting response=None after 4db455f96 (Task 9135) began storing {"detail": ...} on 4xx. The fix is test-only. Memory: none applied.
- Investigate Project Creation Return Tenant Lifecycle Done
Root cause: 8503's OMC deps install ran only in postinst's host converge, never on vnodes, and re-converge fired only on absent plugins. Fixed: missing deps now trigger converge + vnode once-per-version converge. Quick gate green; PR #6678 queued in lane. Memory: none applied.
- Merge lane: jaah Done
Merged #6677 (task 9143) as 3e6be77 after the quick gate passed on the merged tree (6014 tests). Nothing ejected. Queue empty, develop not red. Batch time 56s, of which the gate took 35s. Memory: none applied.
- Fix flaky test gate Done
Flake was Markdown links stage: cdn.deepseek.com intermittently unresolvable from gate host (Status: 0). Added it to mlc_config ignorePatterns like other unreachable hosts; repro red→green, quick gate green. PR #6677 queued in lane. Memory: none applied.
- Merge lane: jaah Done
Merged PR #6676 (task 9135) at 0fa4d0d1 after quick gate green on merged tree (6003 passed). 0 ejected. Queue empty, develop not red. Time 54s (gate 35s). Memory: none applied.
- Merge lane base check: develop 903e043ac9aa Done
develop 903e043ac9aa certified green by merge_lane.py run: full gate 809s, 56,729 passed / 0 failed (2 gate runs; the first red run was recorded as a flake). Nothing ejected; no fix task needed. Memory: none applied.
- Fix pending Live Cast tasks backfill Done
Cause: a deploy orphaned Live Cast's run, which still holds the project's dedup key, so every task stayed Pending. Fix: cp_ecs recovers workflows of tasks that vanished from ECS, and the sweep cancels stuck runs. PR #6674 merged and the dev deploy is green (30 orphans recovered). Prod backfills after promotion. Draft follow-up #9136. Memory: proposed 1 gotcha.
- Merge lane: jaah Done
Merged PR #6675 (task 9137) at 276cc7bc after quick gate green on merged tree (6014 passed). Nothing ejected. Queue empty; develop not red. Time 55s (gate 34s). Memory: none applied.
- Documentation writing for console features and API reference Done
Refreshed the Feature reference page (/features/:id) on prod and retook its captures; Guides, Changelog and Reference not due. Quick gate green, PR #6675 queued to the merge lane. Deferred: terminal-websocket refusal changes once Task 9011 reaches prod. Memory: used mem-22234, mem-15203.
- Multi-cloud NodeLink storage provisioning and management Done
Multi-cloud NodeLink storage merged (#6636, plus fixes #6643 and #6645) and deployed. On dev a Filestore was provisioned, then deleted in GCP from the console, and Org B's EFS was cleaned up. Mounting on GCP nodes is blocked by the EFS-only host helper (draft #9138). Visual check at 1280/390 shows GCP terms only. Memory: none applied.
- Merge lane: jaah Done
Merged #6672 (task 9006), #6673 (9110) and #6674 (9129) into develop. Batch quick gate green with 6014 tests passed; nothing ejected. Develop tip 2867d9327 passes the quick gate and the queue is empty. Memory: none applied.
- Add shared event batching helper for live Done
Added useEventsSinceSeen next to useLiveRefetch and moved every id-filtered lastEvent refetch onto it; 6 per-hook tests fail on old code and pass now. Quick gate green; PR #6673 queued in the merge lane. No UI surface affected. Memory: none applied.
- Merge lane: jaah Done
Merged #6670 (903e043ac9) and #6671 (348feeb504) into develop with a green quick gate on the merged tree (6014 passed). Nothing ejected; #6670 was briefly not_ready while its CI was pending. Queue empty, develop not red. Memory: none applied.
- Fix instance types and overrides UI states Done
Fixed Browse: a cloud switch no longer shows the previous cloud's region/fetched line; Overrides Save reads "Save" (disabled) behind its confirm. Tests added, quick gate green, visual check done on local stack. PR #6671 queued to the merge lane (deploy watch left to the lane).
- GCP Windows node boot-loops after WSL reboot Done
Fixed the GCP Windows boot loop: GCE runs no Hyper-V nested, so Windows launches on GCP drop nested virtualization and install without the engine. The boot watch now names reboot loops. #6654 and #6664 are merged and deployed, and a fresh dev node reached Ready. Task run skipped by the operator (no LLM account). Filed draft #9099. Memory: none applied.
- Verify macOS NodeLink across auto-update Done
Blocked, not verified: there is no macOS node on dev or prod and Add node can't launch one. Signing stays off by the operator's call, so there is no signed release yet. Drafts #9127 (EC2 Mac node) and #9128 (signing optional) filed; re-run 9068 after #9127. Memory: none applied.
- Merge lane base check: develop a96d44f11394 Done
Base check: develop a96d44f11394 certified green — merge_lane.py run, full gate 646s, 56462 passed/0 failed. Nothing merged or ejected; queue empty. Memory: none applied.
- Merge lane: jaah Done
Merged #6669 (Task 9117) as a96d44f1 after quick gate green on merged tree (6014 passed, 35s). 0 ejected. Queue empty; develop not red, no breaches. Batch 56s (gate 35s, merge 11s). Memory: none applied.
- Merge lane base check: develop d1c1a2767e24 Done
develop d1c1a2767e24 certified: merge_lane.py run full gate green in 672s (56465 passed, 0 failed), tree 9b44970. Nothing merged or ejected; develop green. Memory: none applied.
- Test suite cleanup and CI pipeline stabilization Done
PR #6669 queued in the merge lane. CI and every suite green on develop (old reds were fixed regressions). Fixed a jaahd 20s message wait (20.2s→0.17s) and bounded the lock audit (1135s→≤300s); deleted 1 stale test. Deferred: Dockerfile.api apk stall. Memory: none applied.
- Install a Windows node Done
- Merge lane: jaah Done
Merged PR #6668 (Task 9120) as d1c1a27 after a green quick gate on the merged tree (6003 passed, 54s). Nothing ejected; queue empty. The develop_red record points at 770870a, a commit develop has moved past, so it is stale; the base check covers the new head. Memory: none applied.
- Fix red develop 770870ab855e Done
Fixed red develop (Task 9037 fallout): re-pinned the bootstrap golden digests and froze jaah_cli's rotate flock in the host-platform residual. Quick gate and both tests green; PR #6668 queued to the merge lane.
- Merge lane base check: develop 770870ab855e Done
Base check develop 770870ab855e: develop_red recorded by merge_lane.py run. 56351 passed, 2 failed (test_host_platform_guard frozen-residual, test_virtual_nodes bootstrap byte-identical); both fail again alone. No PR; lane queue empty. Memory: none applied.
- Merge lane: jaah Done
Merged PR #6667 (task 9116) into develop as 2200ca00c after the quick gate passed on the merged tree (6003 tests). Nothing ejected. The quick gate is green on the develop head, mypy included; the develop_red flag pointed at the older commit 86fb5954 and is stale. Queue empty. Batch time 51s (gate 31s, merge 8s). Memory: none applied.
- Fix question hooks in Windows Done
Windows questions failed because runners lost identity (not_a_runner) after jaah-runner restarts. The loop now records its tmux server and the daemon re-anchors from that record (security lanes pass). PR #6666 merged. win3 remediated: 9035 now parks Asking. Deploy superseded by a newer run. Draft follow-up: Task 9115.
- Update console feature reference and documentation Done
Docs-writer run: re-verified Set a new password (/reset-password) on prod, retook its capture; Guides, Changelog, Reference nothing due. Quick gate green; PR #6667 queued to merge lane. Memory: none applied.
- Question mark displays despite answered task Done
Board live refresh now hears every stream event, not just a render's last one, so an answered running task drops its ? without a reload. Merged #6665 (8f9be77). Quick gate and tests green; deploy superseded by a newer one. Follow-up draft #9110. Memory: none applied.
- Merge lane: jaah Done
Merged PR #6666 (Task 9039) at 770870ab8 after the quick gate passed on the merged tree (6014 tests). Nothing ejected. develop is green: the mypy red flag on 86fb5954 was stale, and mypy passes on the new head. Batch took 50s (35s of it gating). Memory: none applied.
- Merge lane: jaah Done
Merged PR #6665 (Task 9106) → develop 8f9be77; quick gate green (6014 tests). 0 ejected. Stale develop_red (86fb595, mypy) re-checked: mypy clean on 8f9be77. Queue empty. Memory: none applied.
- Merge lane: jaah Done
Merged #6663 (Task 9103) and #6664 (Task 9082); quick gate green on merged tree (6003 tests). 0 ejected. Stale develop_red (mypy @86fb595) re-checked on 671249c: clean — develop green. Batch 49s (gate 31s). Memory: none applied.
- Fix red develop e30e5fbbcab2 Done
Fixed red develop: rebuilt the reboot-loop console fixture, which .gitignore's *.log kept out, as a tracked boot_logs .txt. Updated the Nodes bulk-delete test to Task 9034's uninstall-only warning. Quick gate green; PR #6663 is queued in the merge lane. Memory: used mem-22518.
- Merge lane base check: develop 86fb595444b6 Done
Base check develop 86fb595: recorded develop_red. The cause is the environment, not the code (0 failed tests): mypy INTERNAL ERROR from a corrupt lane mypy cache, and a cold cache passes. Cache cleared, nothing merged or ejected. Memory: used mem-23540; proposed 1 gotcha (mem-24221).
- Merge lane base check: develop e30e5fbbcab2 Done
Base check develop e30e5fbbcab2: develop_red, reported by merge_lane.py run (2 full-gate runs agree). Red: test_cloud_boot_watch reboot-loop fixture .log is gitignored, never committed (PR #6655); Nodes.filters bulk-Delete vitest. Nothing merged. Memory: none applied.
- Merge lane: jaah Done
Merged 27 PRs (#6633–#6662, not #6642/#6651), 0 ejected. Develop went red from #6635 (worktrees e2e). #6650 shipped the fix, so my duplicate #6651 is closed. Develop is green (specs verified) and the final 86fb595 deploy succeeded. Memory: proposed 1 gotcha.
- Rotate node token after initial enrollment Done
Each installer now rotates the bootstrap node token after its self-check: pending token, confirm, `jaah auth rotate`, additive migration. Quick gate green, review lanes pass. PR #6662 queued; the lane runs the full gate. Deferred: draft #9098.
- macOS Windows daemon parity follow-up hardening Done
Fixed all 9 Windows/macOS hardening items, each with a test that fails without its fix. Quick gate is green and PR #6661 is queued in the merge lane. Assumed hook dir_fd calls need no Windows branch: they can't run there (allowlisted). Porting those state writes: draft #9093.
- Move provider branches and default runtime behind Done
Branch-debt category emptied (16 sites moved onto llm_client/agent_sessions/agent_providers/providerCatalogue); DEFAULT_RUNTIME_DEBT 170→15, the rest justified. Quick gate green; PR #6660 queued to the lane. Memory: none applied.
- Console gaps met while verifying provider lanes Done
PR #6658 merged (e30e5fb). Fixed four gaps: a stale Overrides value no longer blocks other sections; Sessions shows the account; mid-turn chat messages queue; Terminal is disabled or hidden on a live chat. Account picker already shipped (9011). Quick gate and tests green; checked at 1440 and 390px. Deploy superseded by a newer run.
- Tenant worktree surfaces after Slots went operator-only Done
Tenant Release beside node Held slots (shared lib/slotRelease.ts); HTTP test that tenant placement→static slots is capped; App.test Jaah AI row. Video re-record declined → draft #9095. Quick gate green; visual check done; PR #6657 queued.
- Operator cross-organization task walkthrough dead ends Done
Fixed all 5 cross-org dead ends for the operator (Slots New session → chat as the org, Add node/Add connection follow the org filter, one banner on a waiting task, Duplicate as the org). Vitest added per item; quick gate green; review lanes passed; desktop and 390px checked on the local stack. PR #6659 queued to the merge lane. Memory: none applied.
- Close the node deregistration warning message Done
Node delete now shows a one-line auto-hiding toast ("win2 deleted.") instead of the quarter-screen banner; leftover folders not reported (operator's choice). Quick gate + 398 tests green, visual check done. PR #6656 queued to merge lane. Memory: none applied.
- Redact node text consistently on every console Done
redact_node_detail now strips PATs, Authorization values and access tokens; tenants read destroy_error redacted; CP ECS output lines are scrubbed. Quick gate and tests green, lane merged #6653 (82803d9). Its deploy was superseded by later merges. Memory: none applied.
- GCP connection and node setup UI gaps Done
Region moved out of Advanced, so its error shows without expanding; Add node's empty Instance type now says "No GCP types allowed." (operator: link to Products › Instance types). Vitest pins added; quick gate green; visual check at 1280/390 clean. PR #6652 queued to merge lane. Memory: none applied.
- Cloud host lifecycle and provider parity Done
Cloud lifecycle and provider parity merged (#6637, plus #6649 fixing the operator one-node host delete found on dev). Quick gate green; the lane ran the full gate. Dev checks done: AWS Stop→Start, second-region GCP connection, single Delete host and its node. Deferred: background verify of GCP/Azure deletes. Memory: none applied.
- Fix red develop 418e65dd26e3 Done
Fixed red develop: Worktrees hover now shows the #id title like the row (Task 9012 drift); pool e2e probes re-pointed to the shown form. 18/18 worktrees+customer e2e, quick gate green. PR #6650 queued.
- Cloud Instance Launch Visibility and Diagnostics Done
Boot watch reads AWS/GCP/Azure boot logs; cloud tailnet keys last 2 h; stalled reasons and operator boot log in UI; failed launches stay listed and audited. #6641+#6648 merged, gate green. Dev: AWS Ubuntu online; GCP Windows boot-loops after WSL reboot (draft #9082); task run unverified.
- Merge lane base check: develop 418e65dd26e3 Done
Base check develop 418e65dd26e3: develop_red (reported by merge_lane.py run). 56,605 passed, 3 failed in frontend smoke; on rerun 2 still fail: worktrees-mobile.spec.ts:382, worktrees-desktop.spec.ts:450. customer-page.spec.ts:87 was flaky. No merges; queue empty.
- Fix red develop 803f7958bc99 Done
Fixed all 4 red-develop failures: catalogued wait_cloud_node_power, tests pass destroy_node_error, pool operator gate admits an acting operator (require_operator_acting). Quick gate + 307 changed-area tests green; review lanes pass; PR #6647 queued. Memory: none applied.
- Console diagnostics for tasks slots and nodes Done
All 12 diagnostics items built and tested; PR #6642 merged (803f795), Jaah Deploy green. Quick gate and changed-area tests green; review lanes cleared. Visual check done at 1440/390px. Assumed "Blocked by" = Node › Projects banners. Follow-up draft #9062. Memory: none applied; proposed 1 recipe.
- Merge lane base check: develop 803f7958bc99 Done
Base check develop 803f7958bc99: develop_red (recorded by merge_lane.py run). 4 API unit tests fail and fail again alone: _wt_out destroy_node_error TypeError ×2 and a pool-slots authz 403 (both Task 9011), plus wait_cloud_node_power missing from workflow_registry. Queue empty, nothing ejected. Memory: none applied.
- Documentation writer batch update task Done
Docs-writer run: Verify manifest screen reference, new "Give a project more slots" how-to, 2026-10-22 heading to v1.2.3599, event catalog re-verified. Quick gate + docs build green; PR #6646 queued to merge lane. Memory: none applied.
- macOS NodeLink signing and tailnet onboarding Done
Built CI Developer ID signing + notarization (codesign --verify --strict + spctl), a stable signed FDA anchor, PPPC profile, Add node FDA step, needs_permission, macOS NodeLink on, Mac re-enrol re-auth. Quick gate green; PR #6644 queued. Signing is off until APPLE_TEAM_ID + secrets are set; real-Mac proof is draft #9068.
- Daemon parity between macOS Windows and Linux Done
macOS/Windows parity: ACP on both, Node on PATH, bundle interpreter, POSIX-call lint+fixes, file-based node logs, NodeVault no-422. PR #6639 merged (07481d7), deploy green. Real Mac/Windows hardware runs not verified; follow-ups in draft #9057. Memory: none applied.
- Plans and billing correction for organization states Done
Pending-org plan label/choice, plan gates with Subscription link, per-field (default) in plan form, runner slots folded into Max agents, operator-only Slots doors, docs moved, lock/reset_billing/migration fixes. Quick gate green; PR #6640 queued. Visual check done (1440/390 clean). Follow-up draft #9059. Memory: none applied.
- Dev accounts for every provider lane Done
Account Export/Import shipped (#6630 merged, deploy 39776642602 green). Dev: 5248 ran on an imported DeepSeek key (dev→slot console→dev); Antigravity API key 5246 (ACP) + 5247 (switch OFF→legacy, restored ON). Human-only: Claude sub, Codex OAuth/API key; Bedrock + ACP registry blocked by a Gmind override (#9061). Memory: used mem-23382, mem-15203; proposed 0.
- Operator Actions in Another Organization Done
Operator actions in another org now complete in one step or name the switch up front; all 8 items have API/vitest tests. Quick gate green; PR #6638 is queued to the merge lane. Dev walkthrough over Org B done at desktop and 390px with no raw errors. Follow-up draft #9051 filed. Memory: none applied.
- Console interface polish for mobile and desktop Done
Console polish (copy, disabled-reason tooltips, 390px layout, login/signup parity, docs images, flaky CustomersPage test) merged via #6635 (2496b157). Quick gate + 9516 related vitest green; visual check at 390/desktop done. Prod Projects/wizard: no code bug, bundle/cache. Deploy superseded.
- Merge lane base check: develop 639f0c6b167e Done
Base check develop 639f0c6b167e certified: full gate green in 690s (55877 passed, 0 failed), event=certified. Queue empty, develop green. Nothing merged or ejected. Memory: none applied.
- Consolidate vendor facts into single adapter Done
Census widened to all 8 vendor names (ACP fence folded in, roster-comparison check). Provider branches moved onto catalogue fields; one adapter_env, one staged_write, creds read FENCED. Quick gate green; PR #6633 queued. Debt deferred to draft #9030. Memory: none applied.
- Merge lane: jaah Done
Merged #6631, #6630, #6632 into develop (quick gate on merged tree: 5977 passed); 0 ejected. Queue empty, develop not red. Memory: none applied.
- Increase margin to prevent status disc cutoff Done
Fixed the clipped selected-disc ring on /tasks: the list sits 4px further off the sidebar, its scrollport pads 4px, and the insets Task 8891 set to 0 by the split divider are now 4px. Quick gate + vitest green; visual check shows the ring whole. PR #6632 queued to the merge lane.
- Legal and Compliance Records Catch-Up Done
Registers now match prod: CC2.3/I-9/I-10 record 8 live legal pages, H-29 is R-SOC-54, HubSpot vendor row, DeepSeek on subprocessor list. Added operator Prospect data find/erase (API+UI, tests). Quick gate green; review lane pass; PR #6631 queued. Owner: bump Last updated + DPA notice.
- Merge lane: jaah Done
Merged PR #6629 (task 9016) → 4db716d after the quick gate passed on the merged tree (5969 tests passed). Nothing ejected. Queue empty, develop not red. Time 60s (gate 44s). Memory: none applied.
- Deploy pipeline and development environment robustness Done
PR #6629 queued in the lane, quick gate + changed-area tests green. Deploy now stops before image push on a launcher-IAM plan (README hand-apply step); dev-node mirror untar fixed (seeded node live); Add node offers a tailnet line; order token line renamed so it is redacted. Visual check done. Memory: none applied.
- Merge lane: jaah Done
Merged PR #6628 (Task 9014) at eeb713c after quick gate green on merged tree (5963 tests). 0 ejected; queue empty; develop not red, no health breaches. Memory: none applied.
- Slack workspace mismatch detection and reconnection Done
Slack workspace mismatch: Profile › Alerts "Reconnect Slack", off_plan banner on org page, SlackNotConnected→409, per-team for_team cache, outbox team check. Quick gate + tests green; visual check done; PR #6628 queued in lane.
- Merge lane base check: develop 3ff5d1c6f826 Done
Base check develop 3ff5d1c6f826 certified green: full gate via merge_lane.py run, 55821 passed / 0 failed in 647s. Queue empty, develop green, nothing ejected. Memory: none applied.
- Merge lane base check: develop 16ac9479ec21 Done
Base check: develop 16ac9479ec21 certified green by merge_lane.py run (full gate, 56060 passed, 0 failed, 897s). Nothing merged or ejected; queue empty. Memory: none applied.
- Add loading animation to deploying nodes Done
A deploying node now shows a spinner and live halo on the Nodes list, node header, Last Seen and Cloud State chip, and reads Stalled after 15 min. Self-hosted nodes spin once their install starts. Visual check passed. PR #6626 merged and Jaah Deploy succeeded. Follow-up: draft Task 8995. Memory: used mem-15203.
- Consolidate and deduplicate project draft tasks Done
Merged 74 drafts into 16 non-overlapping goal-level tasks (9000–9016); deleted the 73 originals in the console. Dropped 5 obsolete ones. Human-written 8680 left untouched. No code change.
- Merge lane: jaah Done
Merged PR #6627 (task 8994) at 3ff5d1c6 after quick gate green on merged tree (5963 passed). Ejected none; queue empty, develop not red. Time 51s: gate 34s, merge 8s. Memory: none applied.
- Enable NodeLink connections by default Done
NodeLinks now start checked on Add node (all addable, any org) and on new node group create (none on managed storage); users can uncheck. Edit/API unchanged. Quick gate + 108 tests green, visual check at 1280/390 OK. PR #6627 queued to the merge lane. Memory: none applied.
- Merge lane: jaah Done
Merged PR #6626 (Task 8991) at 16ac9479 after the quick gate passed on the merged tree (5963 tests). Nothing ejected; queue empty; develop not red. Batch took 51s, 34s of it the gate. Memory: none applied.
- GitHub Actions workflow failure fix Done
Deploy failed: the main deploy role can't PutGroupPolicy on jaah-node-launchers (Task 8881 policy edit). Hand-applied the missing ec2:GetConsoleOutput with admin. Prod runs daa2eb4722 healthy. The red run can't be re-run via jaah-forge. Follow-up draft #8990. Memory: proposed mem-23783
- Review and fix AWS Security Hub findings Done
Security Hub review: 0 open FSBP/CIS findings (93 FAILED all suppressed by owner-accepted risk rows). Fixed the one open CRITICAL (certifi in AWS's Synthetics layer under the prod canary) with a pinned Inspector rule + R-SOC-53, applied to the org root; 6 INFORMATIONAL/2 Health verified patched, pending timer or AWS-side. PR #6622 merged by the lane, Jaah Deploy succeeded. Memory: used mem-15203; proposed 0.
- Merge lane base check: develop 98d85afe1bfd Done
Base check certified: develop 98d85afe1 full gate green (657s, 55,812 passed, 0 failed), event=certified tree 7810bc81. Nothing merged or ejected; develop green. Memory: none applied.
- Merge lane: jaah Done
Merged PR #6624 (task 8981) at 98d85afe after quick gate green (5974 passed). 0 ejected. Queue empty, develop not red, no health breaches. Batch 49s (gate 33s, merge 8s). Memory: none applied.
- Writing documentation for Jaah console feature Done
Docs-writer: Plan and billing pages refreshed and recaptured on prod (Jaah AI cards plan-gated), changelog 2026-10-22 v1.2.3597; Guides and Reference had nothing due. Quick gate green; PR #6624 queued in the merge lane. Draft follow-up #8985. Memory: none applied.
- Merge lane base check: develop 6fc85d22f426 Done
Base check develop 6fc85d22f426 certified: merge_lane.py run full gate green in 648s (55813 passed, 0 failed). Nothing merged or ejected, queue empty, develop green. Memory: none applied.
- Merge lane: jaah Done
Merged PR #6622 (task 8976) at 6fc85d22 after the quick gate passed on the merged tree (5974 tests, 0 failed). Nothing ejected. Queue empty, develop not red. Time 51s, mostly the gate (34s). Memory: none applied.
- Merge lane base check: develop 613c21f20836 Done
Base check certified: develop 613c21f20836 green on full gate (946s, 55813 passed, 0 failed), certified event recorded (tree d6cf408). Queue empty, no breaches. Memory: none applied.
- Merge lane: jaah Done
Merged PR #6621 (task 8972) at 613c21f2 after quick gate green on merged tree (5974 tests). None ejected; queue empty; develop not red. Time 49s (gate 33s). Memory: none applied.
- Documentation writer production batch update Done
Docs-writer run: Support page refreshed on prod (Org tab shot as admin), new Audit how-to "Follow a task's sessions", changelog heading to v1.2.3553 (no new bullet), API title fix. Quick gate + docs build green; PR #6621 queued to merge lane. Visual check done: captures clean. Memory: used mem-17993.
- Compliance scan · jaah Done
jaah-ai/jaah: submit landed. 62 rules: 59 code-decided (4 error, 21 fail, 13 needs_ledger_data, 2 na_stack, 19 pass), 3 judged (README fail 0.5 no root README; agent instructions pass; rollback pass). No judge omissions. Memory: none applied.
- Merge lane base check: develop a0ee47439544 Done
Base check develop a0ee47439544: certified green — full gate via merge_lane.py run, 55,812 tests passed, 0 failed (673s). Queue empty, no breaches. Memory: none applied.
- Fix red develop af62316fbe13 Done
Fixed red develop: the node-detail e2e fixture now routes the new Sessions panel's /sessions-usage read (Task 8927 left it unrouted, so it 404'd into an error banner). Full smoke: 310 passed. PR #6620 merged as a0ee47439; Jaah Deploy succeeded. Memory: none applied.
- Merge lane: jaah Done
Merged PR #6620 (Task 8959) at a0ee4743 after a green quick gate; 0 ejected; queue empty. The develop-red report on af62316 was stale: a full gate on current develop passed (55,822 tests, 0 failed). Memory: none applied.
- Trial customer agent usage tracking and upgrade Done
- Merge lane base check: develop af62316fbe13 Done
Base check develop af62316fbe13: develop_red (recorded by merge_lane.py run). 3 node-page e2e specs fail expectNoErrorBanner on "Failed to load sessions" (fixture misses the sessions read); 1 flake. Nothing merged. Memory: none applied.
- Merge lane: jaah Done
Merged PR #6619 (task 8957) at 69e9318a. The quick gate passed on the merged tree (5963 tests). Nothing was ejected; the queue is empty, develop_red is null and there are no breaches. Batch took 50s (gate 34s). Memory: none applied.
- Merge lane: jaah Done
Merged PR #6618 (task 8940) at af62316f; quick gate green on merged tree (5974 passed). Nothing ejected; queue empty; develop not red. Batch 48s (gate 33s). Memory: none applied.
- Merge lane base check: develop 748790cb9065 Done
Base check develop 748790cb9065: certified. Full gate green in 644s (55,791 passed, 0 failed) via merge_lane.py run; nothing merged or ejected; develop green. Memory: none applied.
- Merge lane: jaah Done
Merged #6615, #6616, #6617 into develop in 2 quick-gated batches (5974 tests green each); none ejected; queue empty. #6615 fixed the real e2e failure in the f49b90d red; the other 3 were flakes per Task 8952. Memory: none applied.
- Review and fix test suites and CI failures Done
PR #6617 queued in lane: test.yml red fixed (mutedText), crumb-sweep flake fixed (3/120→0/240, induced), 2 stale tests deleted, 390px→448, Context router selftest promoted to quick. Deferred: migration-test retirement; main/dev deploy failures noted. Memory: used mem-18424; proposed 0.
- Fix red develop f49b90d3786a Done
Fixed red develop: e2e nodes-roster-width:243 now reads host load bars from History's Metrics header (moved by Task 8927). Spec 12/12 green, quick gate green; PR #6615 queued in merge lane. Other 3 lane failures were flakes. Memory: none applied.
- Merge lane base check: develop f49b90d3786a Done
Base check develop f49b90d: develop_red (reported by merge_lane.py run). Full gate 55,783 pass/4 fail; e2e nodes-roster-width.spec.ts:243 (host-usage load meter, 448px) fails alone — likely Task 8927. Other 3 were load flakes. Nothing merged.
- Monitor Customer Node Resource Usage Done
Host usage history, load/swap/PSI/top-process signals, and per-session CPU/RAM (live table, history, run peaks) shipped in PR #6609, merged 36887447e; quick gate + review lanes green. Dev deploy fails on a pre-existing #6608 migration (draft #8950). Memory: proposed 2 (mem-23592, mem-23593).
- Merge lane: jaah Done
Merged PR #6614 (Task 8937) at f49b90d. The quick gate passed on the merged tree (5974 tests). Nothing ejected, queue empty. The develop_red record for 9587af4 is stale: #6613 fixed it. Batch took 50s (gate 34s). Memory: none applied.
- Gemini CLI support and agent list changes Done
Retired Gemini CLI (Google moved personal accounts to Antigravity); migrated its accounts and pins to Antigravity and closed Antigravity's gaps (#6608, merged). The dev deploy failed on a JSON-null org override in the migration; fixed in #6612 (merged, its deploy superseded). Quick gate green; review lanes passed. Memory: proposed 1 gotcha (mem-23595).
- Fix red develop 9587af4cbd2d Done
Fixed red develop. Restamped the subprocessors page date, and the ChangePlanDialog hint colour now goes through sx. Quick gate and both failing suites are green. PR #6613 is queued to the merge lane. Memory: none applied.
- Merge lane: jaah Done
Merged #6609, #6610, #6611, #6612 and #6613 in 3 batches, all quick-gated green; none ejected; queue empty. Dev Jaah Deploy has been red since #6608 (api exit 1, Task 8887, which is still active and fixing forward). Memory: none applied.
- Merge lane base check: develop 9587af4cbd2d Done
Base check develop 9587af4cbd2d: develop_red recorded (full gate 2×, 444s; 55571 passed, 3 failed). Red: vitest Typography palette-colour check; test_legal_pages subprocessors date. Nothing queued; no merges. Memory: none applied
- Documentation writing for console feature reference Done
Docs-writer run: refreshed Compliance screens (11 shots retaken), added the Audit capability concept page, added 401 to the API Errors page; Changelog not due. Quick gate green, PR #6610 queued to the merge lane. Visual check done: captures legible and current.
- Merge lane: jaah Done
Merged #6608 (task 8887) at 9587af4c after a green quick gate (5954 tests passed); nothing ejected; queue empty. The develop_red flag named bc16e497, which #6607 already fixed, so it was ignored as stale. Batch took 46s, 31s of it the gate. Memory: none applied.
- Merge lane: jaah Done
Merged #6605 (8921) and #6607 (8934); none ejected. develop's red billing matrix tests (culprit b07806837, Task 8913) were fixed by #6607 and are green on f30e9a3. Queue empty. Memory: none applied.
- Fix red develop bc16e4973da4 Done
Registered Task 8913's POST /api/billing/orgs/{org_id}/trial in the billing authz matrix and WRITE_ROUTES (tests only). Billing suites: 318 passed. Quick gate green. PR #6607 queued to the merge lane. Memory: none applied.
- Merge lane base check: develop bc16e4973da4 Done
Base check develop bc16e4973da4: develop_red recorded. 2 billing tests fail because POST /api/billing/orgs/{org_id}/trial (b07806837, Task 8913) has no authz-matrix row and no registered console action. Gate took 578s. Nothing merged, nothing ejected. Memory: none applied.
- Increase Cisne subscription agent quantity limit Done
Operator can set a per-agent plan's billed agent count in Customers › Products › Subscription › Change subscription (charged like the tenant, org range kept). Quick gate + billing/web tests green, visual check OK; PR #6605 queued. Memory: none applied.
- Merge lane: jaah Done
Merged PR #6604 (Task 8930) at 3e07d426a after the quick gate passed (5978 tests, 48s batch). Nothing ejected. develop_red at 7851c60 is stale: runner-cli-lock-audit passes (exit 0) on current develop. Queue empty. Memory: none applied.
- Fix red develop 7851c60c832f Done
develop red was a transient npm registry error in the runner-lock audit (gemini-cli lock audits clean on rerun). Added a 3-attempt retry that still fails closed, plus selftests; quick gate green; PR #6604 queued to the lane. Memory: none applied.
- Merge lane base check: develop 7851c60c832f Done
Base check develop 7851c60c: develop_red reported by merge_lane.py run. Only stage red: Runner CLI lock audit hung twice (1201s/279s). The same audit run straight passed in 2s, so likely an npm registry hang, not code. No PRs queued. Memory: proposed 1 gotcha (mem-23540).
- Support GCP and Azure like AWS Done
- Merge lane: jaah Done
Merged #6597–#6602 (6 PRs), ejected none. Fixed red develop forward in #6601 (stale goldens/digests + leaked describe_instance stub). Full gate on 7851c60 green except runner-cli-lock-audit (npm registry unreachable from host). Deploy succeeded. Memory: proposed 1 gotcha (mem-23528).
- View and Edit Trial Period Remaining Done
Operators see a customer's Stripe trial end and days left (Subscription card and a Customers list chip) and can move it, end it now, or start a trial (POST /api/billing/orgs/{id}/trial). Quick gate and tests green; visual check done at desktop and phone width. PR #6599 queued. Memory: used mem-15203.
- Convert status indicators to action icons on hover Done
Every clickable status mark now shows its action on hover/focus (console icon, ▶ Start, ✎ Answer; toggles show the flip; nav chips ↗/⌕/▾/↓). Quick gate + web tests green; visual check done on live stack. PR #6595 merged, Jaah Deploy succeeded. Memory: none applied.
- Fix red develop 101216f91dd4 Done
Fixed red develop. Added the Task 8884 launch-failure audit site to the keep list (count 135→136). The 4 vitest suites now stub client* sizes for react-virtual 3.14.21; 43 failures go to 0. Quick gate green. PR #6597 is queued to the merge lane. Memory: none applied; proposed 1 gotcha.
- Merge lane base check: develop 101216f91dd4 Done
Base check develop 101216f91dd4: RED (develop_red reported). Full gate failed twice on the same stages: frontend vitest (42 InstanceType/HostingPrices/TargetSelector tests), API unit (test_activity_kinds + others, 87 total). Fix task filed by CP; no PRs queued. Memory: none applied
- Merge lane: jaah Done
Merged PR #6596 (task 8904, head bb5c8b9 → 9498429b) after the quick gate passed (5978 tests). Nothing ejected; the queue is empty and develop is not marked red. Batch took 52s, 38s of it the gate. Memory: none applied.
- Merge lane: jaah Done
Merged PR #6595 (task 8892) at 348c4418 after quick gate green on merged tree (5976 passed). 0 ejected. Queue empty, develop not red. Batch 52s (gate 36s). Memory: none applied.
- Merge lane: jaah Done
Merged PR #6589 (task 8881) at e3b1e6c9 after quick gate green on merged tree (5965 passed). Nothing ejected; queue empty, develop not red. Memory: none applied.
- Merge lane: jaah Done
Merged 8 PRs to develop: #6587, #6586 (Dependabot, full gate), #6588, #6590, #6591, #6592, #6593. Ejected #6589: conflicts with develop (dirty), sent back to its runner to rebase. Queue empty; develop not red. Last batch took 73s (gate 26s). Memory: none applied.
- Remove horizontal gaps consuming screen space Done
Removed the three 32px gaps around an open detail pane in every list/detail split; full pages and a maximized pane keep 2rem padding. Quick gate and changed-area tests are green; the visual check on the live stack showed no gaps or overflow. PR #6592 is queued to the merge lane.
- Write Jaah documentation updates Done
Docs-writer run: refreshed Brains (/accounts) reference with new prod captures, added 2026-10-21 changelog promotions to v1.2.3507, described the ticket `lesson` API param; Guides nothing due. Quick gate green; PR #6588 queued in lane. Visual check done: shots legible, PII masked. Memory: none applied.
- Daemon cannot read tokens on WSL NodeLink Done
Windows daemon now reads NodeLink tokens via the runner account (dispatch, Codex, quota probe); login fails if dispatch can't read it; console says "can't read credential" + path. PR #6584 merged (e9e7214), dev deploy green. Real-node check deferred: draft Task 8875.
- Dependabot PR #6586 Done
- Merge lane base check: develop e9e72147b217 Done
Base check: develop e9e72147b217 certified — full gate green (56078 passed, 0 failed, 662s), certified event recorded (tree 1a7617f). Nothing merged or ejected; develop is green. Memory: none applied.
- Merge lane: jaah Done
Merged #6582, #6583, #6584 to develop (quick gate green on each merged tree, 5976 tests; batches 51s/49s, gate largest phase). 0 ejected. Stale develop_red at 6cbcaeda7 superseded by #6581 fix. Memory: none applied.
- Merge lane: jaah Done
Merged #6581 (quick-gated merged tree, 5965 passed); 0 ejected; queue empty. It fixed develop's red test_node_orders (from #6580); now 63/63 pass on develop 111e3896. Batch time 36s (gate 21s). Memory: none applied.
- Fix red develop 6cbcaeda7c17 Done
Fixed red develop: test_node_orders' _windows_type now stores windows_capable, which Windows launches read since Task 8747. The 3 failing tests pass (170 passed) and quick gate is green. PR #6581 queued in the merge lane. Memory: none applied.
- Merge lane base check: develop 6cbcaeda7c17 Done
Base check develop 6cbcaeda7c17: develop_red reported by merge_lane.py run. 3 tests in tests/test_node_orders.py (Windows cloud order / onboarding picks) fail deterministically; likely #6580. Nothing merged/ejected; queue empty. Memory: none applied.
- Review and unify model provider interfaces Done
- Merge lane: jaah Done
Merged PR #6580 (Task 8747) as 6cbcaeda7 after the quick gate passed on the merged tree (5965 tests). Nothing ejected; queue empty. The develop_red record names an older sha (stale); the new tip passes the quick gate. Time 50s (gate 35s). Memory: none applied.
- Add node explanation to docs Done
Setup step "Your node" is now "Add node". It says "A node is a machine where AI agents build and test code for you." and its button is now Add node. The same sentence is in the guided-setup and what-is-Jaah docs. Quick gate and 97 vitest green; visual check passed at desktop and phone widths. PR #6579 queued. Memory: none applied.
- Merge lane: jaah Done
Merged #6578 (ee1af2a2) and #6579 (bdb6f523), each quick-gated green (5974 passed); none ejected; queue empty. develop_red flag on ad0f8f1 is stale (fixed by #6577); develop quick gate green. Memory: none applied.
- Confirm button alignment fix Done
Centred the auth-code Confirm/Close button on its field (row align=center + 4px offset for the dense field margin): button middle now equals input middle, was 10.6px high. Quick gate + 174 AccountEditPage tests green; visual check done at 900px/390px. PR #6578 queued to the merge lane. Memory: none applied.
- Merge lane: jaah Done
Merged PR #6577 (Task 8863) at 583febee; 0 ejected. Batch quick gate green (5963 passed, 79s). develop's prior red test_nodelink_share now passes on a focused full gate, so develop is green. Memory: none applied.
- Fix red develop ad0f8f1ee3f5 Done
Fixed the red develop. The NodeLink share test still expected a Mac to be attached, but #6576 took NodeLink off macOS; it now expects the Mac skipped. Changed-area tests (176) and the quick gate pass. PR #6577 is queued in the merge lane. Memory: none applied.
- Merge lane base check: develop ad0f8f1ee3f5 Done
Base check develop ad0f8f1: develop_red (reported by merge_lane.py run). 1 failure: test_nodelink_share.py::test_one_call_creates_..._audits — Mac node no longer attached; likely culprit 96e7a8396 (Task 8748, NodeLink off on macOS). Nothing merged; queue empty. Memory: none applied.
- Enable OAuth logins and NodeLink on macOS Done
macOS: zero-touch one-liner (Tailscale, git, Node, CLIs, tailnet join) and Claude/Codex sign-in, proven on a real Mac. NodeLink off on Mac: TCC blocks launchd jobs from NFS (signing draft #8853). PRs #6547/#6551/#6554/#6576 merged; quick gate green. Memory: none applied.
- Merge lane: jaah Done
Merged #6575 (465556e44, fixes develop's red host_platform guard) and #6576 (ad0f8f1ee), both quick-gate green; none ejected. Develop green in the gate's jaahd container; queue empty. Memory: none applied.
- Ask operator a colour question Done
Lane check done: I asked "Pick a colour" and the operator answered Red. I ran ls in the repo root and its first line was AGENTS.md. No code change. Memory: none applied.
- Ask operator colour, run ls, settle Done
Asked Pick a colour; operator answered Red. Ran ls once: first line AGENTS.md. No code changes; report uploaded. No gates needed.
- Fix red develop 6e8fe9921790 Done
Fixed red develop 6e8fe9921: raised runner_cli_pins.py fcntl residual 4→6 in the host_platform guard (8810's agy host lock; module runs `python3 -I`, can't import the seam). Quick gate green; PR #6575 queued to the merge lane. Memory: none applied.