Skip to content

Switch update feed and Pages domain to updates.cotabby.app#232

Merged
FuJacob merged 3 commits into
mainfrom
chore/cotabby-app-domain
May 25, 2026
Merged

Switch update feed and Pages domain to updates.cotabby.app#232
FuJacob merged 3 commits into
mainfrom
chore/cotabby-app-domain

Conversation

@FuJacob
Copy link
Copy Markdown
Owner

@FuJacob FuJacob commented May 25, 2026

Summary

Executes step 2 of RENAME_TRANSITION.md: switch SUFeedURL in CotabbyInfo.plist and PAGES_CUSTOM_DOMAIN in the release workflow from updates.tabbyapp.dev to updates.cotabby.app. Existing installs keep working through the Cloudflare 301; new builds skip the redirect hop, and the release workflow stops overwriting the Pages CNAME back to the old host every release.

Validation

xcodebuild -project Cotabby.xcodeproj -scheme Cotabby -destination 'platform=macOS' build
# ** BUILD SUCCEEDED **

grep -rn "tabbyapp\.dev" --include="*.swift" --include="*.plist" --include="*.yml" --include="*.py" .
# only matches inside RENAME_TRANSITION.md and RENAME_MANUAL_STEPS.md (historical docs, intentional)

This branch deliberately does not cut a release tag — the change takes effect on the next tagged release someone publishes.

Linked issues

Refs RENAME_TRANSITION.md steps 92-115 and 141-155 ("Action needed before next release").

Risk / rollout notes

  • RENAME_TRANSITION.md and RENAME_MANUAL_STEPS.md are left untouched on purpose — they describe the migration plan as it was and reference the old domain as the "before" state. Updating them in this PR would lose the historical record.
  • Per RENAME_TRANSITION.md step 3, the updates.tabbyapp.dev Cloudflare redirect should stay alive for at least 6 months after this ships so old installs still receive updates. No action needed in this PR — only retire that DNS record after enough users have rolled forward.
  • republish-pages.yml default + input description also flipped so the manual republish workflow doesn't reintroduce the old domain as a default if someone runs it.

Greptile Summary

This PR executes step 2 of the Tabby → Cotabby rename: the Sparkle SUFeedURL in CotabbyInfo.plist and PAGES_CUSTOM_DOMAIN in the release workflow are switched from updates.tabbyapp.dev to updates.cotabby.app. It also bundles the TabbyLoggerCotabbyLogger enum rename and the matching com.tabby.*com.cotabby.* log-subsystem identifier update across all Swift source files.

  • CotabbyInfo.plist and release.yml / republish-pages.yml are updated so new builds check and publish updates at the new domain; the Cloudflare 301 redirect keeps old installs receiving updates in the meantime.
  • CotabbyDebugOptions.swift renames the TabbyLogger enum to CotabbyLogger and updates all seven logger labels; every call-site across ~25 source files is updated consistently.
  • RENAME_TRANSITION.md marks the completed steps with ✅ and leaves step 3 (retire old redirect after 6 months) correctly pending.

Confidence Score: 5/5

Safe to merge — the feed URL and Pages domain changes are straightforward string substitutions with a live Cloudflare redirect providing backward compatibility for old installs.

All changes are mechanical renames and URL substitutions. The Cloudflare 301 keeps existing installs receiving updates during the transition window, and the PR correctly leaves the redirect-retirement step pending. The logger rename is purely cosmetic with no runtime or persistence impact.

No files require special attention.

Important Files Changed

Filename Overview
CotabbyInfo.plist SUFeedURL switched from updates.tabbyapp.dev to updates.cotabby.app; SUPublicEDKey and all other keys unchanged
.github/workflows/release.yml PAGES_CUSTOM_DOMAIN env var updated to updates.cotabby.app; no other logic changed
.github/workflows/republish-pages.yml workflow_dispatch input description and default value updated to updates.cotabby.app
Cotabby/Support/CotabbyDebugOptions.swift TabbyLogger enum renamed to CotabbyLogger; logger labels updated from com.tabby.* to com.cotabby.*; OSLogHandler subsystem constant updated; one stale inline comment still says "Tabby" instead of "Cotabby"
Cotabby/Support/FileLogHandler.swift Doc comment updated to reference CotabbyLogger.bootstrap and com.cotabby.runtime; category(from:) logic unchanged and still correct for new 3-part labels
RENAME_TRANSITION.md Migration steps marked completed (✅) for SUFeedURL, PAGES_CUSTOM_DOMAIN, and TabbyLogger rename; step 3 (6-month redirect) correctly left as pending (⏳)
RELEASING.md Feed URL references updated to https://updates.cotabby.app/appcast.xml in two places

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart TD
    A[Existing install\nupdates.tabbyapp.dev] -->|Cloudflare 301 redirect| B[updates.cotabby.app\nappcast.xml]
    C[New build after this PR\nSUFeedURL = updates.cotabby.app] --> B
    B --> D[Sparkle checks for update]
    D --> E[Update delivered]

    F[release.yml\nPAGES_CUSTOM_DOMAIN] -->|was: updates.tabbyapp.dev\nnow: updates.cotabby.app| G[GitHub Pages CNAME]
    G --> B
Loading

Fix All in Codex Fix All in Claude Code

Reviews (2): Last reviewed commit: "Wrap trace log line to satisfy 140-char ..." | Re-trigger Greptile

FuJacob added 3 commits May 25, 2026 00:21
RENAME_TRANSITION.md step 2: ship a build whose SUFeedURL points directly
at updates.cotabby.app instead of the old updates.tabbyapp.dev domain.
The Cloudflare 301 from tabbyapp.dev keeps existing installs working;
this PR just removes the redirect hop for new installs and prevents the
release workflow from continuing to overwrite the Pages CNAME back to
the old host.

Touches CotabbyInfo.plist (SUFeedURL), release.yml (PAGES_CUSTOM_DOMAIN),
republish-pages.yml (input description + default), and RELEASING.md
docs. RENAME_TRANSITION.md and RENAME_MANUAL_STEPS.md are left alone as
historical migration records.
Finishes the cosmetic rename items that don't touch existing installs:
rename the TabbyLogger enum to CotabbyLogger across all source/test files,
switch the logger subsystem labels from com.tabby.* to com.cotabby.*, and
fix the launch log message to say "Cotabby". FileLogHandler.category(from:)
derives the category from the third dotted component, so the subsystem
rename leaves Console category labels unchanged.

Update RENAME_TRANSITION.md to mark these items plus the feed-URL/Pages
domain swap (this PR) as done. Bundle ID, UserDefaults keys, the Sparkle
signing key, and the updates.tabbyapp.dev redirect are intentionally left
untouched — changing them would break permissions, preferences, or OTA
updates for existing installs.
@FuJacob FuJacob merged commit bbc399b into main May 25, 2026
3 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