Skip to content

fix(flags): extend the fourteen reviewBy dates that expire on 2026-10-02 - #15922

Merged
teamleaderleo merged 3 commits into
mainfrom
parity/flag-review-lead-time
Oct 1, 2026
Merged

teamleaderleo merged 3 commits into
mainfrom
parity/flag-review-lead-time

Conversation

@teamleaderleo

@teamleaderleo teamleaderleo commented Sep 30, 2026 •

Copy link
Copy Markdown
Collaborator

Every feature flag declaration in the registry was created two days ago in 558d6b9ebee with reviewBy: 2026-10-01, a three day lead from birth. scripts/lint-feature-flags.py fails a declaration once its date is earlier than today, so on 2026-10-02 the feature-flags check goes red on main and on every open PR at the same moment, for fourteen declarations nobody has reviewed.

This extends the dates and nothing else.

Red and green

The failure is calendar triggered, so I reproduced it by running the real linter with date.today() stubbed, in throwaway git repos built with git archive (the linter uses git grep --untracked, so it needs a repo).

On origin/main ecba57ac719:

today = 2026-10-01   lint-feature-flags: ok (18 flag declaration(s))            exit 0
today = 2026-10-02   14 x "reviewBy 2026-10-01 has passed - remove the zombie
                      flag or consciously extend the date"                     exit 1

On this branch, on the day main breaks:

today = 2026-10-02   lint-feature-flags: ok (18 flag declaration(s))            exit 0

Real-date runs from the worktree: scripts/lint-feature-flags.py ok (18 declarations), tests/test_lint_feature_flags_scope.py 4 OK, tests/test_ci_test_execution_registry.py 29 OK, scripts/verify-local.py 2/2 selected (swift-syntax, feature-flags).

The dates

Grouped by feature area, so one review covers a group rather than one flag at a time:

New date Keys
2026-11-16 agent-chat-ui, sidebar-appkit-list-experiment, sidebar-workspace-agent-spinner-experiment
2026-12-15 cloud-machines (Swift x2), mobile-connect-button, mobile-task-composer
2027-01-19 computer-use-ux, mobile-workspace-changes, pro-upgrade-ui (Swift and web)
2027-02-16 sidebar-account-button, simulator, workspace-todo-controls

The two keys that exist on both surfaces stay in sync: pro-upgrade-ui-enabled-release is 2027-01-19 in Sources/FeatureFlags.swift and web/app/lib/feature-flags.ts; cloud-machines-enabled-release is 2026-12-15 in both Swift declarations. Every line keeps its own defaultWhenUnavailable literal, including the non-boolean one in Sources/CmuxFeatureFlags+Cloud.swift.

What this PR no longer contains

It first carried a guard that failed review when any reviewBy came within 30 days. A review subagent showed that as a hard gate it does not remove the calendar boundary, it moves it: the same repo-wide red would have arrived on 2026-10-17 instead, for three flags at once, owned by whoever pushed next. .github/workflows/ci-guards.yml already forbids that shape in writing, for the iOS conventions lint:

The conventions lint scans the whole repository, so gating a PR on it directly turns every open PR red whenever main carries one unrelated violation (#10409). Judge the change instead: report only violations absent from the base.

So the guard is out of this PR, and the early warning will be a separate change built the way the repo says: report only, plus a scheduled job that files an issue, following .github/workflows/iroh-v2-production-drift.yml. The dates are the urgent half and stand alone.

Changelog

none

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Chores
    • Updated review dates for several feature flags, including Cloud Machines and the Pro upgrade interface. These changes are administrative and do not alter app behavior.

@coderabbitai

coderabbitai Bot commented Sep 30, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

Navigate logical layers of code changes, visualize relationships, and explore their blast radius.

Warning

Review limit reached

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

Next included review available in 13 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used all 10 included reviews currently available.

Learn how review limits work.

Review configuration:

⚙️ Run configuration

Configuration used: Repository: manaflow-ai/cmux/.coderabbit.yaml

Review profile: ASSERTIVE

Plan: Advanced

Run ID: 36a22d08-23c4-4707-8ddc-3100d4dec86e

📥 Commits

Reviewing files that changed from the base of the PR and between 1c2c146 and 9abe9e5.

📒 Files selected for processing (3)
  • Sources/CmuxFeatureFlags+Cloud.swift
  • Sources/FeatureFlags.swift
  • web/app/lib/feature-flags.ts

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Repository: manaflow-ai/cmux/.coderabbit.yaml

Review profile: ASSERTIVE

Plan: Advanced

Run ID: fd9ad353-45cb-4c23-a9cd-93364b9657b8

📥 Commits

Reviewing files that changed from the base of the PR and between 33ad0b1 and 1c2c146.

📒 Files selected for processing (3)
  • Sources/CmuxFeatureFlags+Cloud.swift
  • Sources/FeatureFlags.swift
  • web/app/lib/feature-flags.ts

Included review availability: This review used your included allowance. Your plan provides up to 10 included reviews per hour; 0 remain after this review.


📝 Walkthrough

Walkthrough

Feature-flag review dates changed in the Swift and web registries. Flag definitions, ordering, and runtime behavior remain unchanged.

Changes

Feature-flag review dates

Layer / File(s) Summary
Update feature-flag review dates
Sources/FeatureFlags.swift, Sources/CmuxFeatureFlags+Cloud.swift, web/app/lib/feature-flags.ts
Review dates were updated for flags in the Swift registry, the Cloud Machines flag comment, and the web registry. Flag definitions and runtime behavior were not changed.

Priority: ⬇️ Low

Estimated code review effort: 1 (Trivial) | ~3 minutes

Change: Bug fix

Merge Risk: ⚪ Minimal · up to 1c2c1

The review dates are valid and synchronized, with feature-flag behavior unchanged. No actionable merge-blocking risk remains beyond normal validation.

🚥 Pre-merge checks | ✅ 25
✅ Passed checks (25 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 3…
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Cmux Cloud Persistent Session And Early Input ✅ Passed The authoritative diff changes only reviewBy metadata in Sources/CmuxFeatureFlags+Cloud.swift, Sources/FeatureFlags.swift, and web/app/lib/feature-flags.ts. It does not change Cloud terminal c…
Cmux Swift Actor Isolation ✅ Passed PASS. The authoritative diff changes only reviewBy text inside comments in Sources/CmuxFeatureFlags+Cloud.swift and Sources/FeatureFlags.swift; the changed-line classification found no non-comme…
Cmux Swift Blocking Runtime ✅ Passed The PR changes only reviewBy dates in Swift comments and one web flag string. The Swift diff adds no blocking waits, sleeps, delayed dispatch, polling, main-queue sync, or manual locks. No productio…
Cmux Browser Automation Off-Main ✅ Passed The pull request changes only reviewBy comment metadata in two Swift files and one TypeScript feature-flag registry. It does not change browser socket commands, WebKit/AppKit access, worker routing,…
Cmux Expensive Synchronous Load ✅ Passed The reviewed diff changes only reviewBy comment dates in two Swift files and one string date in the web registry. The Swift diff has no non-comment changed lines and adds no load, parser, actor, soc…
Cmux Cache Substitution Correctness ✅ Passed PASS: The PR changes only reviewBy comment/string literals in the Swift and TypeScript feature-flag registries. The diff does not replace any authoritative read, cache, persistence, history, undo, o…
Cmux No Hacky Sleeps ✅ Passed The PR changes only reviewBy metadata in two Swift flag comments and one TypeScript feature-flag object. The diff introduces no sleep, timer, polling, delay, retry, or wall-clock synchronization c…
Cmux Algorithmic Complexity ✅ Passed The PR changes only reviewBy date text in two Swift flag comments and one TypeScript flag object. It adds no loops, scans, sorting, filtering, joins, queries, or other algorithmic behavior. The algo…
Cmux Swift Concurrency ✅ Passed PASS: The review-scoped diff changes only reviewBy values in Swift comments and one TypeScript flag comment-like metadata field. No Swift executable lines changed, and no new DispatchQueue, Task…
Cmux Swift @Concurrent ✅ Passed The Swift diff changes only reviewBy values in comments in Sources/CmuxFeatureFlags+Cloud.swift and Sources/FeatureFlags.swift. It adds no async functions, nonisolated async work, `@concurrent…
Cmux Swift Package Boundaries ✅ Passed PASS: The Swift diff changes only reviewBy values inside existing // FLAG(...) comments in Sources/CmuxFeatureFlags+Cloud.swift and Sources/FeatureFlags.swift. No executable Swift lines, packa…
Cmux Swiftpm Lockfiles ✅ Passed The PR changes only reviewBy values in three feature-flag source files. The authoritative diff contains no Package.swift, Package.resolved, .gitignore, Xcode project/workspace, workflow, or de…
Cmux Swift Logging ✅ Passed PASS: The PR changes only reviewBy comment text in two Swift files and one TypeScript registry entry. It adds or materially changes no Swift logging statements, file logging, Logger declarations, …
Cmux User-Facing Error Privacy ✅ Passed PASS: The authoritative diff changes only reviewBy dates in Swift comments and the web feature-flag registry. The repository search shows reviewBy is consumed by scripts/lint-feature-flags.py, n…
Cmux Full Internationalization ✅ Passed The diff changes only reviewBy dates in three feature-flag registries. The Swift changes are developer-only FLAG(...) comments, and the web reviewBy field is operational registry metadata consum…
Cmux Swiftui State Layout ✅ Passed The reviewed diff changes only reviewBy comments in the two Swift files and one TypeScript date. It adds no SwiftUI state, layout measurement, list-row store reference, or render-time mutation. The …
Cmux Architecture Rethink ✅ Passed PASS: The authoritative diff changes only reviewBy text in Swift comments and one TypeScript registry string. All changed Swift lines are comment lines; no sleeps, dispatch, polling, locks, observer…
Cmux Swift Auxiliary Window Close Shortcuts ✅ Passed PASS: The PR changes only reviewBy comment text in Swift feature-flag declarations and one TypeScript flag value. The authoritative diff contains no added or modified NSWindow, NSPanel, `NSWindo…
Cmux Source Artifacts ✅ Passed The PR changes only three existing hand-written source files: Sources/CmuxFeatureFlags+Cloud.swift, Sources/FeatureFlags.swift, and web/app/lib/feature-flags.ts. The diff updates feature-flag `r…
Cmux No Test Or Debug Seam In Production Source ✅ Passed PASS — The only changed Swift files are Sources/CmuxFeatureFlags+Cloud.swift and Sources/FeatureFlags.swift. The diff changes only reviewBy values in comments. It adds no #if DEBUG test seam, …
Title check ✅ Passed The title clearly identifies the primary change: extending fourteen feature-flag reviewBy dates before the 2026-10-02 failure date.
Description check ✅ Passed The description explains the failure, the date-only fix, affected flags, validation performed, removed scope, and changelog entry. It omits the checklist, but the required Summary, testing information…
✨ Finishing Touches
📝 Generate docstrings
  • Commit to this branch
  • Create a new PR
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actions

Copy link
Copy Markdown
Contributor

All contributors have signed the CLA ✍️ ✅
Posted by the CLA Assistant Lite bot.

@github-actions

github-actions Bot commented Sep 30, 2026 •

Copy link
Copy Markdown
Contributor

CI failure attribution

CI failed on 49935142f6 (run 36711726372 attempt 2): 1 code.

Job Verdict Why
macos / app-host unit tests (changed suites) code a test failed
Matched log lines
macos / app-host unit tests (changed suites): ✘ Test "A create adopts the reserved workspace and tab once without selecting it" recorded an issue at CloudMachineWorkspaceAdoptionTests.swift:99:6: Time limit was exceeded: 300.000 seconds

Not re-run automatically: macos / app-host unit tests (changed suites) is not a machine failure.

Written by scripts/ci/classify_failures.py (ci-failure-attribution.yml); signatures are its SIGNATURES table. A machine verdict is the runner's fault, not this PR's.

@github-actions

github-actions Bot commented Sep 30, 2026 •

Copy link
Copy Markdown
Contributor

Dogfood tours of 49935142

sidebar-and-chrome-tour at 49935142: passed (run)

sidebar-and-chrome-tour at 49935142

Key frames of sidebar-and-chrome-tour at 4993514 04-three-workspaces 10-split-right 15-command-palette 24-settings

Tours are picked by the paths globs in dogfood/scenarios/*.json; a Dogfood-tours: a, b line in the description picks them instead (none turns this off). Look at every frame before merging: a green tour only means no step failed.

@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Merge train pass, not taking this over: you pushed it ten minutes ago, so it is yours. Two things from the outside.

I reran the failed jobs (attempt 2 is queued). Attempt 1 was not the branch: macos / macOS compile admission ended cancelled with no failing step recorded, and macos / macOS status, tests and ci-status are that one result propagating. macOS status says it plainly:

app-host-unit-tests: skipped
macos-compile-admission: failure

The attribution bot reached the same place from the other side, "no failed job besides the gates", and declined to rerun because only gate jobs failed. Everything else on the head is green, including CI fast guards, which is the job the linter cliff will hit.

Second: this is the most time-critical PR open right now and worth saying out loud. The cliff is tomorrow. If this has not landed by then, workflow-guard-tests fails on main and on every open PR at once, and the next person to push owns a red required check they did not cause. I have flagged it on the merge-train tracking issue so it does not sit behind anything else.

If macOS admission keeps getting cancelled out from under you, ping me and I will keep rerunning while you work on something else.

— Raindrop g2 🫧 / Run: run_worker_20260930_3fc64ba6

@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Your red is not yours. I chased the cancelled and failed admissions on this PR down to the compile log, and main does not compile:

TerminalSizeBoundsOverlayView.swift:19:34: error: cannot find type 'BonsplitContrastPalette' in scope
TerminalSharingDisplay.swift:102:27: error: cannot find type 'TabPresence' in scope

vendor/bonsplit on main points at b32f48b9200, the head of bonsplit's feat-split-divider-hex branch, which declares neither type. #15747 wrote that over 83857fa043b, which declares both. #15747 is a Cloud workspace fix, so the stale gitlink rode along from a branch cut before the sizing merge.

Fix is up at #15932, one line, pointer restored to what main had before #15747. Nothing to do on this PR except rerun once that lands. Rerunning admission before then will keep failing the same way, which is what attempt 2 here did.

Still flagging the deadline, since it has not moved: the twelve flags in this PR carry reviewBy: 2026-10-01, so if this has not landed by tomorrow workflow-guard-tests fails on main and on every open PR at once, and the next person to push owns a red required check they did not cause.

— Raindrop g2 🫧 / Run: run_worker_20260930_3fc64ba6

Every flag declaration in the registry was born on 2026-09-28 in 558d6b9
with reviewBy 2026-10-01, a three-day lead. scripts/lint-feature-flags.py
fails a date once it is earlier than today, so on 2026-10-02 the lint goes
red on main and on every open PR at the same moment, for fourteen
declarations nobody has looked at.

Give each feature area its own date so one review covers the group:
agent chat and the sidebar experiments in November, cloud machines and the
mobile surfaces in December, computer use and pro upgrade in January, the
remaining sidebar and workspace flags in February. The two cross-surface
keys stay in sync across Swift and web.

Nothing but the dates changes. Each declaration keeps its own
defaultWhenUnavailable literal.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@teamleaderleo
teamleaderleo force-pushed the parity/flag-review-lead-time branch from dceec8b to 1c2c146 Compare September 30, 2026 10:38
@teamleaderleo teamleaderleo changed the title fix(flags): stop the reviewBy cliff that reddens every PR tomorrow fix(flags): extend the fourteen reviewBy dates that expire on 2026-10-02 Sep 30, 2026
@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Review: a review subagent went through both commits, re-ran every check from the worktree, and reproduced commit 1's red in a throwaway repo rather than touching shared git state. It confirmed the mechanical parts (the test saw all 18 declarations the linter sees, was red on commit 1 by design and named every offending flag; commit 2 moved nothing but the fourteen dates, kept each defaultWhenUnavailable literal, and kept the two cross-surface keys in sync; the CI wiring matched the neighbouring scope-test step and did not double-run). It then raised one blocking finding against the design, and three smaller ones.

Blocking: as a hard gate, the 30-day lead-time check did not remove the calendar boundary, it moved it. Sources/FeatureFlags.swift, Sources/CmuxFeatureFlags+Cloud.swift and web/app/lib/feature-flags.ts are unowned in scripts/ci/workflow_guard_groups.py, so classify_test_groups fails open to every group and the step would have run on effectively every PR. With the new dates it would have gone red repo-wide on 2026-10-17 for three flags at once, then 30 days before every date after that, against state no PR introduced. .github/workflows/ci-guards.yml forbids exactly that shape for the iOS conventions lint, citing #10409. It also pointed out that the check would make the linter's own "consciously extend the date" path unreachable, since it fires 30 days earlier.

Fixed: the guard is out of this PR. The branch is rewritten as one commit on current main ecba57ac719 containing only the fourteen date changes, and the test file, its tests/test-execution.toml entry and its ci-guards.yml step are gone. I also corrected the date the failure lands on: the linter compares < today, so 2026-10-01 still passes and 2026-10-02 is the first red day. The PR body now records the red and green from running the real linter with date.today() stubbed on both trees.

Left: three findings belong to the follow-up, which will be report-only plus a scheduled job that files an issue, following .github/workflows/iroh-v2-production-drift.yml.

  • scripts/lint-feature-flags.py has no PATH_OWNERS entry, so it resolves to ('preflight',) and a change to parse_swift_registry or swift_registry_files runs neither flag test. Pre-existing for tests/test_lint_feature_flags_scope.py; the follow-up adds the entry rather than doubling the exposure here.
  • The two tests re-implement the linter's flag collection instead of sharing it. They agree at 18 today, but a third registry would be silently exempt. The follow-up extracts a collect_flags() that main() and both tests call.
  • scripts/lint-feature-flags.py:163 calls datetime.date.fromisoformat outside a try, so a date matching DATE_RE but not a real calendar date (2026-13-01) crashes the lint with a traceback instead of reporting the flag. One-line fix, in the follow-up.

Not changed: the dates stay grouped three or four to a date. The grouping is by feature area so one review covers a group, which is the point of reviewBy; without the lead-time gate a shared date only affects the linter's own has passed message.

One unrelated red to call out rather than hide: the previous head failed macos / macOS compile admission on cannot find type 'BonsplitContrastPalette' and cannot find type 'TabPresence'. Neither type is defined anywhere in Sources/ or Packages/ — both come from the vendor/bonsplit submodule, so that was a submodule or source-sync failure in that run, not this change. main's own admission job succeeded an hour earlier on 64ec56d4cf9. This push is on current main, so it gets a fresh run.

@teamleaderleo
teamleaderleo enabled auto-merge (squash) September 30, 2026 10:40
@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Correction to my earlier comment: I said twelve flags with reviewBy: 2026-10-01, which made this sound like it had to land today. Your title has it right, it is fourteen dates expiring 2026-10-02, so the real deadline is the day after tomorrow, not tomorrow. Sorry for the false alarm.

The rest stands: the red here was inherited, not yours. macos / macOS compile admission was failing on a stale vendor/bonsplit pointer that #15747 wrote over main, and job 109839280121 on this PR is where I read the 7 compile errors, all in TerminalSizeBoundsOverlayView.swift and TerminalSharingDisplay.swift. #15930 fixes the pointer, has auto-merge armed and is down to its last two checks. Once it lands, a rerun here should go green without you changing anything.

Your Web complexity red is also not real: there is a CANCELLED context from a superseded run alongside a SUCCESS and an in-progress one on the current head.

— Raindrop g2 🫧 / Run: run_worker_20260930_3fc64ba6

@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Correcting the cause I gave for the macOS red above. I said it looked like a submodule or source-sync failure in that one run. It is not transient: main cannot compile the macOS app target at all right now.

A squash merge in #15747 (7d246ed4e5a, landed 09:50 UTC) walked the vendor/bonsplit pointer backwards to b32f48b9200, which predates TabPresence and BonsplitContrastPalette. Sources/TerminalSharingDisplay.swift and Sources/TerminalSizeBoundsOverlayView.swift both need them. The main admission job I pointed at as evidence, on 64ec56d4cf9, ran at 09:16 UTC and is not a descendant of that commit, so it passed before the break rather than after it.

#15930 restores the pin and is on its last check. The same four jobs fail on every PR on this base until it lands, so nothing here needs a rerun; this PR's own checks are 72 passed with the failures confined to that cascade. Auto-merge stays on and will take it once the base compiles again.

Thanks to whoever diagnosed #15930, which got there before I did.

Taking main's tip rather than the newest green-guard commit that
scripts/merge-main.sh picks by default. 40a636e is #15930, the commit that
restores the vendor/bonsplit pin, and without it this branch keeps failing the
app compile on a break it did not cause.
@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

The red on this head is not from this change

macos / app-host unit tests (changed suites) failed, and macOS status,
tests and ci-status are the rollups reporting it. Three tests in
cmuxTests/CloudMachineWorkspaceAdoptionTests.swift each exceeded the 300
second time limit:

  • A create adopts the reserved workspace and tab once without selecting it (line 99)
  • Concurrent opens share one attachment within the reserved workspace (line 198)
  • Cancelling a mixed-content workspace fences its delayed attachment, argument openAgain → true (line 282)

Both attempts of run 36711726372 failed on exactly those three, at the same
three lines, so it is not a flake and a third rerun would not tell us anything
new.

This PR cannot be the cause. The two Swift files it touches change only text
inside // FLAG(...) comments: reviewBy: 2026-10-01 becomes a later date and
nothing else. No declaration, default, key or order moves. The third file,
web/app/lib/feature-flags.ts, is not linked into the macOS app host.

What the diff does do is decide which suites run. The changed-suites router
picks Cloud suites because Sources/CmuxFeatureFlags+Cloud.swift and
Sources/FeatureFlags.swift are in the diff, so this PR is running tests that a
PR touching other areas would not. That is consistent with a failure that lives
on main and is only visible to a PR that touches these files, which would also
explain why no other open PR is red on the same tests right now.

The test file itself has not changed since 2026-09-25 (245c0ab60e9), so
nothing in it moved recently either.

I have a waiter on the main CI dispatch 36741080703 to get a baseline for these
three tests. If they are red there too, this is a main-side failure and this PR
should not be held for it. I will post the baseline result here when it lands.

Auto-merge is already armed on this PR, and the dates it extends expire on
2026-10-02.

@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Tracking issue for the three hangs: cmux#16020. I filed it after attempt 1 and
have now added the frequency answer there, which is that a retry does not clear
it. Both attempts wedge on the same three tests at the same three lines, so this
PR should not be held waiting for a green shard on a failure its diff cannot
produce.

Co-Authored-By: Codex <noreply@openai.com>
@teamleaderleo
teamleaderleo merged commit 882b6fc into main Oct 1, 2026
17 checks passed
@teamleaderleo
teamleaderleo deleted the parity/flag-review-lead-time branch October 1, 2026 14:16
@github-actions

github-actions Bot commented Oct 1, 2026

Copy link
Copy Markdown
Contributor

Merge receipt for 9abe9e591d, merged 2026-10-01 14:16:51 UTC

  • Not verified at merge: ci-status (not reported), CI fast guards (in progress), Web complexity (in progress)
  • Verified: Fast static checks, Web complexity candidate, web-validation
  • Skipped by policy: web-build, web-database-tests, web-tests
  • Full suite: runs on main after merge.

Labeled merged-unverified: if main breaks near this merge, look here first.

@github-actions github-actions Bot added the merged-unverified A judging check was not green at merge; see the merge receipt comment label Oct 1, 2026
rustybret pushed a commit to rustybret/bmux that referenced this pull request Oct 1, 2026
877df6f docs: add Kiro and Hermes to Feed matrix (manaflow-ai#16106)
b5aa76c Re-land Cloud machine stale status punctuation (manaflow-ai#16010)
4fdd903 Merge pull request manaflow-ai#15345 from manaflow-ai/fix-v2-startup-local-route-impl
73ae480 fix(cli): list browser JSON flags in help (manaflow-ai#16098)
2bb742d fix(agents): preserve HTML-like Codex auto-naming messages (manaflow-ai#15984)
0d1b8dd fix(web): restore the seats-follow-membership copy the dashboard port dropped (manaflow-ai#16265)
be10c64 fix: recover interrupted Cloud vm run creates (manaflow-ai#16221)
28742a8 docs: document agent session recovery command (manaflow-ai#16108)
bcaf5e4 test: resolve the temp root before comparing rerun xcconfig paths (manaflow-ai#16372)
86230a5 Add built-in custom sidebar templates (manaflow-ai#15931)
5ccac53 fix(session): discard persisted listening ports on restore (manaflow-ai#12436)
882b6fc fix(flags): extend the fourteen reviewBy dates that expire on 2026-10-02 (manaflow-ai#15922)
45914ae docs: document Kimi session restore (manaflow-ai#16107)
2f574d6 Treat aborted Codex turns as terminal monitor events
f59f37d Remove stale Cloud reorder indicator on cleanup
eba8488 Fix drag cleanup and message inbox fixture
0d2b312 Include CLI error type in CLI tests
5955b67 Include CLI error type in app target
94acff9 Repair stale macOS test compile references
0117647 Fix isolated test window geometry cleanup
4b7b837 Fix canonical identity and accent color compile errors
538aaf6 Normalize instance tags and fix browser restoration compile
2c33e92 Fix post-merge compile blockers
5ea8219 Merge remote-tracking branch 'origin/main' into fix-v2-startup-local-route-impl
825e0d3 Fail closed when release gate V2 origin is unset
c21b0a8 Publish warmup recovery and preserve workspace IDs
f66904b Allow full relay rollover soak to finish
2ca91b5 Harden forget cleanup and Codex iteration proof
b908dde Bound endpoint warmup retries and retry on foreground
859ca92 Retry endpoint warmup after transient failures
97e5a7f Cancel timed out endpoint warmup
c5caca7 Serialize snapshot encoding in persistence actor
c589ff8 Bound Codex workload log polling
40aa04e Harden startup identity cache and snapshot invalidation
f06f502 Use shared deadline scheduler for endpoint warmup
2fa7297 Validate combined host status before reuse
5386126 Scope paired Mac cache before reconnect reuse
a34c7ee Bound endpoint warmup timeout independently of cancellation
b834f86 Bound cached endpoint warmup and diagnostics
00959bf Revalidate scope after cached snapshot restore
1b444a0 Keep attach tickets in memory during retries
6985f9e Repair cached runtime reconciliation and warmup retries
08c8047 Make explicit snapshot deletion win races
4c78ecf Preserve v2 runtime ownership through auth and soak
b1f7a18 Await workspace snapshot removal
0583749 Move snapshot restore off the main actor
7ea8285 Persist workspace snapshots off the main actor
07f7c13 Bound snapshot maintenance and relay gate timing
6b68c8c Keep real usage terminals available for verification
2f5c012 Normalize hidden Mac snapshot identities
5c5388e Stabilize real usage release gate lifecycle
344cac1 fix: bound cached startup and redact snapshots
1ce9bc8 fix: preserve and prune cached workspace snapshots
1887e53 fix: close release gate workload hazards
27fba71 Merge main (0398322) into fix-v2-startup-local-route-impl
d9724bc test: compile the vm ready poll policy into cmuxCLITests
beadd57 test: drive hook state recovery through the bundled CLI
c3b97e1 Use shared queue drain helper after compile repair
a11fc3c test: restore cmuxTests compile on main
c5a9d15 Keep close tab test queue drain compatible with main
07b9624 Hit test the measured text line in inline link regression
6c9f137 Merge main (a66a8bb) into fix-v2-startup-local-route-impl
4cbdeea Measure inline link view before hit testing
82618ef Await actor epoch during cached warmup
59cbda2 Fix cached endpoint warmup self lifetime
a06061a Keep release gate on approved runner route
1c10a44 Leave staging gate outside protected environments
8c4cfb5 Use staging environment for staging release gates
1db5b80 Pin manual gate to an available trusted Mac
b934ccf Route manual gate through selected owned pool
9ecd5aa Allow trusted owned runner for manual gate
5afde77 Use supported hosted macOS label for manual gate
2359026 Allow hosted runner for manual Iroh acceptance gate
01b0f64 Make release-gate evidence durable and ordered
c7cb704 Bind real-use replay to the requested workspace
5bd6005 Require real Codex workload evidence
35c7723 Measure app-side foreground readiness
e52cb3e Recover backup pairing when only demo row is cached
849ed89 Harden v2 startup state and workspace targeting
02bb470 Bind iOS e2e checks to the Codex workspace
76178d0 Document complete iOS e2e driver contract
908e2ee Merge green main into v2 startup branch
185be6c Make iOS e2e driver open a workspace
45f19d0 Keep IROH gate independent of Ghostty helper fetches
5f67eea Allow full relay gate to publish its verdict
9574395 Measure release gate rows at UIKit visibility
f3928a3 fix: persist every complete workspace snapshot
c5cb772 fix: measure cached workspace rows before Iroh readiness
c84fb67 ci: install axe before iOS Iroh gate
451933a Retain foreground state during snapshot reconciliation
eb1aa35 Preserve local demo workspace ownership
14dc577 Upload real Iroh usage evidence
41659c1 Add real Codex and background coverage to Iroh gate
5696ef1 Close workspace snapshot scope races
cb9d421 Prevent stale workspace snapshots from resurfacing
4f7f4b5 Restore scoped workspace snapshots before paired Mac load
a93af42 Give real relay gate cleanup time
61a88a2 Fix workspace snapshot initializer ordering
8bc596e Verify relay renewal at its real lifetime
99ca1d8 Cache scoped workspace rows during v2 startup
5aeab39 Enforce sub-2.5-second workspace startup gate
4fe8ac5 Warm cached v2 state before auth bootstrap
bf90a77 fix mobile attach parsing with CLI diagnostics
f7db0fa Merge remote-tracking branch 'origin/main' into fix-v2-startup-local-route-impl
1a91f7c test: keep workspace creation override signatures current
db62464 test: pass remote workspace flag through overrides
241ba19 test: avoid asserting startup cache implementation details
1e87a6e fix simulator launch environment propagation
6a17189 fix: keep release gate on workspace list
fa8f1c1 fix: retry stored Mac after auth restore
2bbb2ef fix: remove merge artifact from mobile shell
0ba4041 Merge remote-tracking branch 'origin/main' into fix-v2-startup-local-route-impl
2b64a40 test: preserve simulator startup diagnostics in release gates
73bd646 fix: avoid speculative duplicate Iroh dials
814ebe7 perf: reuse hydrated pairing cache during startup
27c401b Revert "perf: publish startup workspace rows before pairing persistence"
c146010 perf: publish startup workspace rows before pairing persistence
582713d fix: drain parallel iroh preconnect task
b980721 perf: preconnect iroh before first authenticated request
a396428 fix: use v2 identity for combined host status
5901f7d test: preserve admitted identity in combined startup status
5c504e8 fix: match cached host status in combined workspace response
9fac2b6 perf: build combined host proof from live service
0cf1b27 perf: combine startup workspace and host status
1ece6fc test: persist onboarding before cached launch
6372c0c test: measure cached pairing release-gate startup
73bc8cf test: reject injected credentials during cached startup verification
792a561 Revert "perf: reuse hydrated pairing snapshot during startup"
c9a6b58 Revert "perf: start cached pairing dial during startup hydration"
93d0db5 Revert "fix: bind optional cached pairing row correctly"
12ef215 fix: bind optional cached pairing row correctly
16cd25d perf: start cached pairing dial during startup hydration
d8a9c75 perf: reuse hydrated pairing snapshot during startup
4f6f58b fix: dial cached route before startup backup refresh
7814fd2 test: prove startup dials during backup refresh

# Conflicts:
#	.github/workflows/iroh-release-gate.yml
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

merged-unverified A judging check was not green at merge; see the merge receipt comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant