Skip to content

fix(next): ActionTrackedWork namespace-type lint red - #28084

Merged
teamleaderleo merged 1 commit into
feat-cmux-nextfrom
lane/atw-namespace-lint
Oct 30, 2026
Merged

teamleaderleo merged 1 commit into
feat-cmux-nextfrom
lane/atw-namespace-lint

Conversation

@teamleaderleo

@teamleaderleo teamleaderleo commented Oct 30, 2026 •

Copy link
Copy Markdown
Collaborator

Fixes the base red in the cmux-next convention lint on feat-cmux-next:

ERROR namespace-type Packages/macOS/CmuxNext/Sources/CmuxNextActions/ActionTrackedWork.swift:4 enum ActionTrackedWork (all-static public surface, not instantiable)

It came in with ae7c57b (#27104), which added public enum ActionTrackedWork holding one static effect(registry:...). Every PR into feat-cmux-next has shown it since.

Change

The lint asks for "an extension on the receiver type or an instantiated value". The function's first argument was the ActionRegistry, so it becomes an extension on ActionRegistry:

  • ActionTrackedWork.effect(registry: r, cancellationFailure: ..., ...) is now r.trackedWorkEffect(cancellationFailure: ..., ...).
  • The private helper run(registry:...) is now the private runTrackedWork(...), and Answer is a file-private TrackedWorkAnswer.
  • The file is renamed to ActionRegistry+TrackedWork.swift, like the other ActionRegistry+*.swift extensions.
  • The call sites are updated: two in CloudHandlers.swift, one in ActionEffectTests, three in CloudWorkspaceSetupLifecycleTests.

The body is unchanged: the effect still captures the registry strongly, just as the old registry parameter did, and it keeps the same run scope, refusal capture and cancellation handling. No behavior changes.

Verification

  • scripts/lint-ios-package-conventions.sh now prints OK: no unjustified convention violations.
  • A fleet compile plus the ActionEffectTests and CloudSignedOutCreationContinuationTests suites (package-test-lane) run at this head.

No capture: no UI changes; this is a rename of a non-visual action helper into an ActionRegistry extension, and the CloudHandlers edit only updates two call sites.

Risk: low. This is a mechanical rename inside one module plus its call sites.

Agent session: agent session

🤖 Generated with Claude Code

#27104 added `public enum ActionTrackedWork` with an all-static public
surface, which the package-conventions namespace-type rule refuses, so
the cmux-next convention lint has been red on feat-cmux-next since
ae7c57b. Its only member took the registry as its first argument, so
it becomes what the lint asks for: an extension on the receiver type.
`ActionTrackedWork.effect(registry: r, ...)` is now
`r.trackedWorkEffect(...)`, with the same body and the same strong capture
of the registry. No behavior changes.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@github-actions github-actions Bot added the risk:normal Risk tier (docs/ci/risk-tiers.md) label Oct 30, 2026
@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Review (codex gpt-6-astra high, router-review): SHIP at 467675b

SHIP

  1. No blocking findings. The extension preserves the original actor isolation, cancellation, refusal capture, work/result tracking, and strong registry capture; all references were updated.

@teamleaderleo
teamleaderleo merged commit 940e574 into feat-cmux-next Oct 30, 2026
152 of 160 checks passed
@teamleaderleo
teamleaderleo deleted the lane/atw-namespace-lint branch October 30, 2026 07:36
@github-actions

Copy link
Copy Markdown
Contributor

Shipped in:

This branch was previously deployed

1 inactive deployment
ci-routing-agent — 467675b2 Deployed Oct 30, 2026 by teamleaderleo via wait for same-key tree publisher #81341
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