Skip to content

1.3.5: skip the app-bundle suite on a Mac that cannot compile SwiftUI - #21

Merged
vimoxshah merged 2 commits into
mainfrom
fix/swiftui-probe-and-doc-counts
Sep 14, 2026
Merged

vimoxshah merged 2 commits into
mainfrom
fix/swiftui-probe-and-doc-counts

Conversation

@vimoxshah

Copy link
Copy Markdown
Owner

What

npm test failed on this machine with three failures in test/bundle.test.js, each reported as
main.swift:1451: cannot assign to property: 'self' is immutable. That reads as a defect in the
menu bar app. It is not one.

The real error is the one above it: external macro implementation type 'SwiftUIMacros.StateMacro' could not be found. The Command Line Tools ship swiftc but not SwiftUI's macro plugins, so on a
Mac with no Xcode @State never expands, hovered becomes a plain stored property, and every
assignment to it from an escaping closure is a mutation of an immutable captured self.

The suite's canBuild() guard only asked whether swiftc exists, so it ran anyway and failed.
It now compiles the smallest view that needs the plugin, and skips with a message that names Xcode.

The shipped app is unaffected — CI builds it on a runner with the full toolchain, and the 1.3.4 DMG
verifies against the cask's checksum.

Also

  • The README said 836 tests. The suite has 841.
  • The README's link row printed brew install --cask tokenflow on its own, which fails: the cask
    lives in this repo's own tap, so brew tap vimoxshah/tap … has to come first. The row now points
    at the Install section, which carries both lines.

Gates

Gate Result
npm test 841 tests, 838 pass, 0 fail, 3 skipped
npm run lint clean, 169 files
npm run typecheck clean
npm run design:check gates pass, 3 targets current

🤖 Generated with Claude Code

vimoxshah and others added 2 commits September 14, 2026 11:41
…ftUI

The suite skipped when `swiftc` was absent, which is not the condition that
matters. The Command Line Tools ship `swiftc` but not SwiftUI's macro plugins,
so on a Mac with no Xcode `@State` never expands and every view in main.swift
collapses into errors about assigning to an immutable `self`. Three tests
failed, and the failure read as a defect in the menu bar app rather than a
missing toolchain.

The probe now compiles the smallest view that needs the plugin, and the skip
message names Xcode.

Also: the README said 836 tests where the suite has 841, and its link row
printed `brew install --cask tokenflow` on its own, which fails — the cask
lives in this repo's own tap, so the tap command has to come first. The row
points at the Install section, which carries both lines.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@vimoxshah
vimoxshah merged commit 67e87cb into main Sep 14, 2026
9 checks passed
@vimoxshah
vimoxshah deleted the fix/swiftui-probe-and-doc-counts branch September 14, 2026 06:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant