Skip to content

feat: rebrand to Haven Code with Claude Bedrock as default#3

Merged
dafzthomas merged 3 commits intomainfrom
feat/rebrand-haven-code-default-claude
Mar 18, 2026
Merged

feat: rebrand to Haven Code with Claude Bedrock as default#3
dafzthomas merged 3 commits intomainfrom
feat/rebrand-haven-code-default-claude

Conversation

@dafzthomas
Copy link
Owner

Summary

  • Renames "T3 Code" → "Haven Code" across all user-facing surfaces (browser title, desktop app, bundle IDs, git author, error messages, build artifacts, update dialogs)
  • Changes default provider from Codex to Claude Agent (Bedrock) — new threads start with Claude by default
  • Hides Codex provider behind a new enableCodexProvider setting (default: off) with a toggle in Settings → Codex App Server
  • Keeps legacy data dir names and localStorage keys intact for seamless migration

Test plan

  • bun run typecheck — all 7 packages pass
  • bun run test — 450 tests pass
  • Manual: verify "Haven Code" appears in browser tab, loading screen, sidebar footer, settings page
  • Manual: verify Claude is the default provider in picker for new threads
  • Manual: verify Codex does NOT appear in provider picker by default
  • Manual: enable Codex in Settings, verify it then appears in picker
  • Manual: verify existing threads with Codex still work (lockedProvider)
  • Manual: verify Bedrock badge shows on Claude models

Generated with Claude Code

- Rename "T3 Code" → "Haven Code" across all user-facing surfaces
  (browser title, desktop app name, bundle IDs, git author, error
  messages, build artifacts, update dialogs)
- Change default provider from Codex to Claude Agent (Bedrock)
- Hide Codex provider by default; add settings toggle to re-enable
- Reorder provider picker: Claude first, Codex hidden behind setting
- Keep legacy data dir names and localStorage keys for migration

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@github-actions github-actions bot added size:L vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. labels Mar 18, 2026
The sidebar header used a T3 SVG wordmark + separate "Code" text.
Replace with "Haven Code" text wordmark matching the rebrand.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Copy link

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 9e46e3f657

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

}> = [
{ value: "codex", label: "Codex", available: true },
{ value: "claudeAgent", label: "Claude", available: true },
{ value: "codex", label: "Codex", available: false },

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Mark Codex as selectable when toggle is enabled

Setting Codex to available: false here makes the new enableCodexProvider toggle ineffective: AVAILABLE_PROVIDER_OPTIONS is derived by filtering for available === true in ProviderModelPicker, so ChatView can never re-add Codex even when the user enables it in Settings. In practice, users cannot start new Codex threads after turning the feature on, which breaks the advertised gating behavior.

Useful? React with 👍 / 👎.

const USER_DATA_DIR_NAME = isDevelopment ? "t3code-dev" : "t3code";
const APP_DISPLAY_NAME = isDevelopment ? "Haven Code (Dev)" : "Haven Code (Alpha)";
const APP_USER_MODEL_ID = "com.haven.havencode";
const USER_DATA_DIR_NAME = isDevelopment ? "havencode-dev" : "havencode";

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Keep previous userData directory as migration fallback

Changing the primary desktop userData directory name to havencode without also checking the prior t3code path causes existing installs to boot against a fresh profile directory. resolveUserDataPath() only falls back to the legacy display-name folder, so users with data under the old normalized folder lose local app state/history visibility after upgrade.

Useful? React with 👍 / 👎.

- State dir default: ~/.haven-code/userdata (was ~/.t3/userdata)
- Worktree default: ~/.haven-code/worktrees (was ~/.t3/worktrees)
- Desktop state dir follows the same pattern
- Fix test expectations for previous rebrand changes
- T3CODE_STATE_DIR env var still works as override

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@dafzthomas dafzthomas merged commit bf1e430 into main Mar 18, 2026
6 of 7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:L vouch:trusted PR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant