V1.0.0 beta.3#408
Conversation
Restores the full docs/ tree removed from main in the previous commit, sourced from docs/talk-prep-archive so the authentication-middleware path fix (aa9e36d) is folded in. Because this add lands after the deletion point, merging v1.0.0-beta.3 into main will re-add docs/ without conflict. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
Important Review skippedToo many files! This PR contains 166 files, which is 16 over the limit of 150. To get a review, narrow the scope: Upgrade to a paid plan to raise the limit. ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (166)
You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
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. Comment |
Code Review: V1.0.0 beta.3OverviewThis PR advances CelestraCloud and BushelCloud examples to the beta.3 API, with the centerpiece change being a refactoring of CelestraCloud's configuration system to use CI / Workflow ChangesRemoving Branch tag format change — The
CelestraCloud: ConfigKeyKit RefactorWhat changed
Positives
Issues / Suggestions1. The 2. 3. private func readDate(forKey key: String) -> Date? {
configReader.string(forKey: ConfigKey(key), as: Date.self)
}This relies on 4. Missing 5. BushelCloud: Test File HousekeepingCopyright year updates (2025 to 2026) and missing MIT license headers added across test files. The
DocumentationNew articles under SummaryThe ConfigKeyKit refactor is a clear improvement — the duplicated key-pair pattern is gone and the cascade logic is centralized. Three things to verify before merging:
|
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #408 +/- ##
==========================================
+ Coverage 71.67% 76.25% +4.58%
==========================================
Files 168 158 -10
Lines 3844 3761 -83
==========================================
+ Hits 2755 2868 +113
+ Misses 1089 893 -196
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
…ang 20)
The windows-2025 runner now resolves the newest installed MSVC toolset
(14.51, VS18) whose STL hard-asserts STL1000: expected Clang 20 or newer.
Swift 6.1/6.2 bundle Clang 19, so swift-crypto's CCryptoBoringSSL fails to
compile. Swift 6.3 bundles Clang 20 and passes; windows-2022 defaults to an
older 14.4x toolset compatible with Clang 19.
Exclude windows-2025 x {6.1, 6.2}: those keep building on windows-2022, and
only Swift 6.3 builds on windows-2025.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Removes the `Packages/ConfigKeyKit` git-subrepo (vendored copy of brightdigit/ConfigKeyKit) and switches the example backends to the remote package, pinned to the released tag: .package(name: "ConfigKeyKit", path: "../../Packages/ConfigKeyKit") → .package(url: "https://github.com/brightdigit/ConfigKeyKit.git", from: "1.0.0-beta.2") - Examples/BushelCloud, Examples/CelestraCloud, Examples/MistDemo manifests + Package.resolved updated (ConfigKeyKit pinned at 1.0.0-beta.2 / 6949abb). - MistKit core never depended on ConfigKeyKit; Packages/ is now empty and removed. - Removed the now-dead `setup-configkeykit` action steps and `CONFIGKEYKIT_BRANCH` env from the BushelCloud and CelestraCloud workflows (BushelCloud.yml, codeql.yml, bushel-cloud-build.yml, cloudkit-sync composite action incl. its configkeykit-branch input; CelestraCloud.yml, codeql.yml, update-feeds.yml). SwiftPM now fetches ConfigKeyKit directly, so the fresh-build fallback action is unnecessary. Verified: `swift package resolve` succeeds for all three examples (ConfigKeyKit resolves to 1.0.0-beta.2) and the `mistdemo` executable builds. All seven edited workflow/action YAML files still parse. The pre-existing MistDemoApp SwiftUI build errors are unrelated to this change. Tracks brightdigit/ConfigKeyKit#6. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
brightdigit/swift-build@v1 no longer needs an explicit scheme — the MistKit and MistDemo workflows already omit it. Remove the now-obsolete `scheme:` input from the BushelCloud and CelestraCloud workflows to match. These are subrepo workflows; propagate upstream via `git subrepo push` after review. (ConfigKeyKit is excluded — that subrepo is being removed entirely in a separate PR.) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Review: PR #408 — V1.0.0 beta.3This is the beta.3 release-branch merge into Found one real CI bug and three documentation accuracy issues worth fixing before merge: 1. 2. 3. 4. Minor (not blocking): a few of the new No security, performance, or test-coverage concerns — this PR doesn't touch runtime code paths. |
…387) Empirical probing shows CloudKit enforces subscription uniqueness on (recordType, firesOn), not subscriptionID; duplicates surface as a misleading INTERNAL_ERROR. Captures how MistKit infers this via the hedged isLikelyDuplicate hint / subscriptionLikelyDuplicate error. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…382) Apple's archived CloudKit Web Services REST reference documents tokens/create and tokens/register under /database/, but the live service only routes them under /device/ (the /database/ path returns 405 Method Not Allowed). MistKit already uses /device/; this captures the divergence so it isn't re-discovered. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Review: PR #408 (V1.0.0 beta.3)This is a large rollup PR (134 files, 8 commits) merging
The one substantive code change is
Nothing else in the diff stood out as a correctness/security issue — the |
…#414) * refactor: cut cyclomatic complexity in FieldValue+Codable, drop lint disable (#154) Re-scoped from the now-removed CustomFieldValue(Payload).swift to the remaining hand-written disable in FieldValue+Codable.swift. Extracted helpers so the cyclomatic_complexity swiftlint disable can be removed; behavior and serialization output unchanged. Generated Operations.*.Output disables are out of scope. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * test: cover FieldValue encode scalar/complex paths after refactor The #154 refactor split encodeValue into encodeScalar/encodeComplex but added no tests; the only encode-path test covered .string. Add a parameterized encode→decode round-trip over the scalar and complex cases (driving the encodeScalar→encodeComplex delegation), plus explicit encode-shape assertions for .date (milliseconds) and .bytes (string payload), which do not round-trip by design. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
ReviewThis PR is large by file count (136 files) but small by actual code-risk surface — most of the diff is mechanical:
|
Signing into the web demo triggers Apple's macOS trusted-device two-factor prompt. Clicking Allow is supposed to display a 6-digit code for the idmsa.apple.com window, but macOS sometimes fails to show the code modal, stalling sign-in. This is Apple/macOS behavior (CloudKit JS owns the challenge; MistDemo only captures the resulting token), not a MistDemo/MistKit bug. Add a Troubleshooting subsection to the Web section of the MistDemo README documenting the symptom and the reliable "Get Verification Code" workaround via System Settings. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…View (#419) NoteEditView and RecordDetailView mix non-private stored inputs with @State private / @Environment private state. Swift derives the synthesized memberwise initializer's access level from the most restrictive stored property, dropping the init to private. Both views are constructed from other files (QueryView.swift, RecordDetailView.swift), so under Swift 6.3.2 the compiler reports "cannot be constructed because it has no accessible initializers" (plus cascade errors inferring Mode for .create/.edit). Add an explicit internal init to each view exposing only the externally-set properties, mirroring CompositionDisclosure. RecordDetailView seeds its @State note through State(initialValue:). No call sites change. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
Review: V1.0.0 beta.3 (release-consolidation branch) This PR bundles several already-separately-reviewed changes into the beta.3 release branch (164 files, ~9.8k/-3.7k additions/deletions). I focused on the substantive, non-mechanical changes; CI-matrix tweaks, license-header year bumps, .gitrepo/Package.resolved bumps, and docs-only additions were spot-checked but not deep-reviewed. Code quality & best practices
Potential bugs / gaps
Security
Everything else checked and clean Net: no blockers. The two test-coverage gaps above are worth a follow-up (either in this PR or a fast-follow), but nothing here should hold up the beta.3 release. |
Review of #408 (v1.0.0-beta.3)This is a large release-branch merge (13 squashed PRs plus vendored OverallSolid, well-organized work. Highlights:
Minor / non-blocking notes
Security / performanceNo concerns — no new network surfaces, no injection vectors, Test coverageStrong. New/changed behavior (complex-type mismatch throwing, encode refactor, all three new request-option surfaces) all have both unit tests (mock-transport body inspection) and live-integration-test phases. Nice touch: the integration phases explicitly handle propagation lag (schema indexing, change-feed lag) as non-fatal rather than flaking the suite. |
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Delete docs/transcriptions/ — the same dry-run transcript in five renderings (.txt/.vtt/.srt + paragraphs.json/timestamps.json, ~1.3MB of raw transcription-tool output). Durable talk feedback already lives in talk-feedback.md; drop its now-dangling raw-transcript link. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
No description provided.