Skip to content

Promote develop to main#280

Merged
haowei2000 merged 8 commits into
mainfrom
develop
Jul 20, 2026
Merged

Promote develop to main#280
haowei2000 merged 8 commits into
mainfrom
develop

Conversation

@haowei2000

Copy link
Copy Markdown
Collaborator

Release promotion

Promotes the current develop branch to main.

Included

  • spacing-first chat, ViewBoard, and Workbench hierarchy
  • top-level floating layers for hover controls and popovers
  • transient bot-offline handling
  • iOS build and project-file guard fixes

Validation

All required checks on PR #279 passed: Frontend Build, Gateway Check, Gateway Integration (Postgres), and iOS Build.

haowei2000 and others added 8 commits July 20, 2026 10:50
ChatModelStore.swift and WorkbenchSheet.swift shared the same PBXFileReference
(...0124) and PBXBuildFile (...0223) ids: they landed from two parallel branches
(claude/channel-initial-load-perf and claude/ios-workbench-plugin-feasibility)
that each hand-picked "the next" sequential id off the same base, and the merge
kept both.

Xcode dedupes by id, so ChatModelStore lost and was dropped from the compile
list — even though the file was on disk with all four pbxproj entries present.
The build failed at AppModel.swift:36 with `cannot find 'ChatModelStore' in
scope`, and the only clue was a "Skipping duplicate build file" warning.

Reassign ChatModelStore to unused ids (...0126 / ...0225). Verified: the
duplicate warning is gone, BUILD SUCCEEDED, and the app installs and runs on
device.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Nothing in CI compiled iOS, so the pbxproj id collision fixed in the previous
commit broke develop unnoticed — the app stopped building and every gate stayed
green. Three additions, all motivated by that miss:

- ios-build (macos-14): builds the app for a generic simulator destination with
  CODE_SIGNING_ALLOWED=NO, so a real compile gates every apps/ios change without
  signing certs or a provisioning profile in CI.
- scripts/check-pbxproj.py: runs first in that job. Catches duplicate object ids,
  Swift files on disk that are missing from Compile Sources, and references to
  files that no longer exist. xcodebuild would catch the same class of problem,
  but minutes later and pointing at whichever unrelated file used the dropped
  symbol; this names the two colliding files in a second. Verified against the
  broken pbxproj: it flags both ids and exits 1.
- gateway-check now runs `cargo fmt --check`. The other Rust crates already gate
  on fmt and CLAUDE.md tells contributors to run it, but the gateway had no such
  step, so drift accumulated (7 hunks across 4 files, formatted here).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
The first run of the new job failed on the runner's default Xcode 15.4
(Swift 5.10): `unknown attribute 'retroactive'` in ShellComponents.swift, plus
"call to main actor-isolated initializer in a synchronous nonisolated context"
in AppShellView/AgentsView. Both are Swift 6 features the sources already rely
on — the code is fine, the CI toolchain was years behind what the project is
developed against (Xcode 26.6 locally).

Move to macos-15 and xcode-select the newest Xcode on the image rather than
pinning a version, which would only need bumping again at the next image
refresh. The chosen version is printed so the next toolchain drift is legible
in the log instead of surfacing as mystery syntax errors.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
fix(ios): unbreak the iOS build (pbxproj id collision) + gate it in CI
…ierarchy

refine spacing-first frontend hierarchy
@haowei2000
haowei2000 marked this pull request as ready for review July 20, 2026 08:20
@haowei2000
haowei2000 merged commit 1b7ee52 into main Jul 20, 2026
15 checks passed
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