Skip to content

cmux-next checks: the two namespace enums the convention lint rejects become instantiable structs - #24330

Merged
teamleaderleo merged 1 commit into
feat-cmux-nextfrom
cmux/base-red-namespace-enums
Oct 22, 2026
Merged

teamleaderleo merged 1 commit into
feat-cmux-nextfrom
cmux/base-red-namespace-enums

Conversation

@teamleaderleo

@teamleaderleo teamleaderleo commented Oct 22, 2026 •

Copy link
Copy Markdown
Collaborator

cmux-next checks (god files, concurrency, crash safety, l10n) is red on every open feat-cmux-next PR. The namespace-type rule rejects two all-static public enums, and a lint red also skips the checks that run after it in the same job (#22197), so the cost is larger than the two lines it names.

ERROR namespace-type  Packages/macOS/CmuxNext/Sources/CmuxNextDesign/AttentionHighlightLook.swift:70  enum AgentTurnRing (all-static public surface, not instantiable)
ERROR namespace-type  Packages/macOS/CmuxNext/Sources/CmuxNextSettings/AgentPaneNeedsYouSetting.swift:6  enum AgentPaneNeedsYouSetting (all-static public surface, not instantiable)

The fix

scripts/lint-ios-package-conventions.sh --namespace-fix, the repo's own fixer (the one CLAUDE.md names, with CI's non-mutating lint as the backstop), makes each an instantiable struct with a public init. No call site changes: every reference is a static member (AgentTurnRing.tunable, AgentPaneNeedsYouSetting.enabledPath, .fallback), nothing extends or conforms either type, and neither is used as a metatype, generic argument or switch subject. No behavior changes.

Why this is a base red, not one lane's

Two PRs of this lane were the control: #24269 changes one markdown paragraph and #24262 changes Swift, and both produce a byte-identical failure set across the same five checks (normalizing timestamps and tmp paths). A markdown-only change cannot add a convention violation, and both violations are present at base tip 50a7cb4dc7dc4b89e5097a2e3faafca46982eae9.

The other four reds in that set are not this change's and are left alone: the debug.tab_switch / new_workspace harness failures (the window draws no frames ... an occluded or unlit console), the two live summary-*.json failures, and test_every_submodule_free_checkout_on_an_owned_runner_resets_submodules.

Observed / Not run

Observed: ./scripts/lint-ios-package-conventions.sh --namespace-fix went from the two ERROR lines above to OK: no unjustified convention violations. python3 scripts/cmux-next/prepush-gate.py → no new violations. Both failing job logs downloaded and diffed to establish the control above.

Not run: no local Swift build or test (agents do not compile on a person's machine); this PR's own cmux-next app compile (build fleet) and cmux-next checks are the compile and lint evidence. The fleet queue was ~473 deep at the time of writing, so a separate dispatched compile-check would only have queued behind this PR's own.

Changelog

none

🤖 Generated with Claude Code

Agent session: big-red


View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need.


Summary by cubic

Fixes cmux-next checks being red on every feat-cmux-next PR by converting the two all-static public enums the namespace-type lint rejects into instantiable structs with public inits.

Both violations exist at base tip, and a markdown-only PR produces the same failure set, so this is a base red rather than a lane issue. The fix uses the repo's own scripts/lint-ios-package-conventions.sh --namespace-fix. A lint error also skips the checks that run after it in the same job, so it costs more than the two lines it names. Every reference is a static member, so no call sites or behavior change.

Written for commit 67c7030. Summary will update on new commits.

View guided diff Turn on auto-fix

…ecome instantiable structs

`cmux-next checks` is red on every feat-cmux-next PR. Its namespace-type rule
rejects `AgentTurnRing` (AttentionHighlightLook.swift) and
`AgentPaneNeedsYouSetting`, both all-static public enums, and a lint red also
skips the checks that run after it in the same job (#22197), so it costs more
than the two lines it names.

`scripts/lint-ios-package-conventions.sh --namespace-fix`, the repo's own fixer,
makes each an instantiable struct with a public init. Every reference is a static
member (`AgentTurnRing.tunable`, `AgentPaneNeedsYouSetting.enabledPath` and
`.fallback`); nothing extends or conforms either type, and neither is used as a
metatype, generic argument or switch subject, so no call site changes and no
behavior does.

Base red, not this lane's: the same five checks fail with a byte-identical
failure set on a markdown-only PR (#24269) and a Swift PR (#24262), and both
violations are present at base tip 50a7cb4.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Agent-Session: https://cmux.com/deeplink/agent?harness=claude&session=01a15cb8-bbf0-7010-8d04-f9f2c0cb55df&host=big-red
@teamleaderleo teamleaderleo added the risk:low Risk tier (docs/ci/risk-tiers.md) label Oct 22, 2026
@github-actions

github-actions Bot commented Oct 22, 2026 •

Copy link
Copy Markdown
Contributor

cmux status (one comment, edited in place; each line is updated by the job that owns it)

Review 67c7030: HQ feed card · gallery before/after runs · checks

App of this head (app.zip, kept 1 day)

gh workflow run reload-build.yml -R manaflow-ai/cmux --ref feat-cmux-next -f tag=pr24330 -f ref=cmux/base-red-namespace-enums -f platform=macos -f backend_mode=local

red: cmux-next checks (god files, concurrency, crash safety, l10n); no finished base run on 958f2e9 to compare; do not merge until green; see lane-rules

@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Owned by chat-open-perf on big-red · session

@github-actions github-actions Bot added risk:normal Risk tier (docs/ci/risk-tiers.md) and removed risk:low Risk tier (docs/ci/risk-tiers.md) labels Oct 22, 2026
@blacksmith-sh

blacksmith-sh Bot commented Oct 22, 2026

Copy link
Copy Markdown

Found 10 test failures on Blacksmith runners:

Failures

Test View Logs
/tmp/tmp14btzf9q/summary-fail.json (live):/summary-fail.json (live): View Logs
/tmp/tmpktmaevm9/summary-missing.json (live):/summary-missing.json (live): View Logs
[new_workspaces] debug.new_workspace timed 0 of 50 new workspace rows/
[new_workspaces] debug.new_workspace timed 0 of 50 new workspace rows
View Logs
[new_workspaces] the window draws no frames/[new_workspaces] the window draws no frames View Logs
[tabs] debug.tab_switch timed 0 of 40 switches/
[tabs] debug.tab_switch timed 0 of 40 switches
View Logs
[tabs] the window draws no frames/[tabs] the window draws no frames View Logs
nightly cmux-tui resolve/nightly cmux-tui resolve View Logs
test_every_submodule_free_checkout_on_an_owned_runner_resets_submodules (main.Reuse
dWorkspaceSubmodules.test_every_submodule_free_checkout_on_an_owned_runner_resets_submo
dules)/
test_every_submodule_free_checkout_on_an_owned_runner_resets_submodules (main.Reuse
dWorkspaceSubmodules.test_every_submodule_free_checkout_on_an_owned_runner_resets_submo
dules)
View Logs
test_every_submodule_free_checkout_on_an_owned_runner_resets_submodules (main.Reuse
dWorkspaceSubmodules.test_every_submodule_free_checkout_on_an_owned_runner_resets_submo
dules) (job='web-bundles')/
test_every_submodule_free_checkout_on_an_owned_runner_resets_submodules (main.Reuse
dWorkspaceSubmodules.test_every_submodule_free_checkout_on_an_owned_runner_resets_submo
dules) (job='web-bundles')
View Logs
the cmux NIGHTLY-identity jobs (sign, verify, publish) must contain: - name: Skip a bui
ld older than the old feed's/
the cmux NIGHTLY-identity jobs (sign, verify, publish) must contain: - name: Skip a bui
ld older than the old feed's
View Logs

Fix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need.

@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Bead cx-h1gt3 created for this PR by the cmux coordinator.

@github-actions

github-actions Bot commented Oct 23, 2026 •

Copy link
Copy Markdown
Contributor

@github-actions

Copy link
Copy Markdown
Contributor

Shipped in:

This branch was previously deployed

1 inactive deployment
ci-routing-agent — 67c7030b Deployed Oct 22, 2026 by teamleaderleo
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

risk:normal Risk tier (docs/ci/risk-tiers.md)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant