Skip to content

Support multiple Codex homes in Vault - #4067

Closed
austinywang wants to merge 25 commits into
mainfrom
issue-4049-multiple-codex-home-dirs
Closed

austinywang wants to merge 25 commits into
mainfrom
issue-4049-multiple-codex-home-dirs

Conversation

@austinywang

@austinywang austinywang commented May 13, 2026 •

Copy link
Copy Markdown
Contributor

Summary

  • add cmux.json support for codex.additionalHomes entries with optional displayName/name labels
  • aggregate Codex session discovery across the default CODEX_HOME and configured additional homes
  • show source-home labels in Vault and resume custom-home sessions with CODEX_HOME set

Closes #4049

Validation

  • git diff --check
  • jq empty Resources/Localizable.xcstrings
  • jq empty web/data/cmux.schema.json

Local app build/reload intentionally deferred until required CI is green.


Note

Medium Risk
Moderate risk because it changes Vault’s Codex session discovery/resume behavior (multi-source merge, new identifiers, new settings parsing) and adds new async/timer-based behaviors that could affect indexing/UI refreshes.

Overview
Vault now supports discovering Codex sessions from multiple CODEX_HOME directories: it always scans the default ~/.codex and can additionally scan codex.additionalHomes from cmux.json (string or {path, displayName|name}), with paths normalized/deduped and settings changes triggering a reload.

Codex session loading is updated to run SQL-first per home (with disk-scan fallback), merge results across homes, label entries with a per-home source label in the UI, and resume sessions from non-default homes by injecting CODEX_HOME into the generated codex resume command. Error handling for unavailable homes/DB issues is localized and logged, tests are added for home labeling/resume behavior, and the config template/schema/docs are updated accordingly; additionally, drag expiration and search debounce switch from Task.sleep to timer-backed implementations.

Reviewed by Cursor Bugbot for commit d945ec2. Bugbot is set up for automated code reviews on this repo. Configure here.


Summary by cubic

Adds support for multiple Codex homes in Vault, merging sessions across the default and configured homes with clear source labels and correct CODEX_HOME on resume. Also replaces sleep-based waits with timer-backed debounce/expiration and fixes drag hand-off.

  • New Features

    • cmux.json: add codex.additionalHomes (string or { path, displayName|name }); paths are tilde-expanded, normalized, de-duped; settings allowlisted; schema/docs/template updated.
    • Vault scans ~/.codex plus configured homes and shows per-home labels in rows/popovers/transcript previews (hidden when only one). Duplicate labels are disambiguated by showing the path; the default home is labeled “Default Codex.”
    • SQL-first per home with file-scan fallback; session IDs include the home path; resuming injects shell-quoted CODEX_HOME.
    • Reloads when codex.additionalHomes changes via a settings notification.
    • Localized warnings/errors for unavailable homes and database issues.
  • Bug Fixes

    • Unavailable configured homes are warned and skipped; empty homes without a sessions directory return no results and no warnings.
    • Keeps SQLite details out of user-facing errors; uses unified OSLog for diagnostics.
    • Improves sessions-root matching for consistent file-scan filtering.
    • Replaces Task.sleep with timer-backed debounce in the search popover and timer-based drag expiration.
    • Drag-and-drop now returns the consumed entry, fixing hand-off.

Written for commit d945ec2. Summary will update on new commits. Review in cubic

Summary by CodeRabbit

  • New Features

    • Configure additional Codex homes via codex.additionalHomes; sessions from each home show a source label and resuming a session sets the matching Codex environment.
  • Settings

    • Settings UI accepts codex.additionalHomes and the default settings template includes an example additional home.
  • Schema

    • Added a codex section to the config schema to validate additionalHomes entries.
  • UI

    • Session rows, popovers and transcript headers display source labels (combined with CWD where applicable).
  • Documentation

    • Vault/Codex integration guide with examples for registering additional homes.
  • Localization

    • English and Japanese messages for Codex home/database warnings, load failures, and unavailable-home warnings.
  • Tests

    • Added tests for Codex home source labeling and missing-sessions behavior.

Review Change Stack

@coderabbitai

coderabbitai Bot commented May 13, 2026 •

Copy link
Copy Markdown

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

Adds configurable additional Codex homes, persists and notifies changes, concurrently loads sessions per home (SQL and disk), labels entries with their source, updates UI to show source labels, and ensures resumed sessions set CODEX_HOME for configured homes.

Changes

Multiple Codex Home Discovery and Display

Layer / File(s) Summary
Codex home data models and type extensions
Sources/SessionIndexModels.swift
New CodexSessionHomeSetting, CodexSessionHomeSettings, and CodexSessionHome types manage persisted home settings and derive standardized paths. AgentSpecifics.codex extends to include codexHome, SessionEntry adds sourceLabel, and new sourceAndCwdLabel computed property combines both labels for display.
Configuration schema and defaults
web/data/cmux.schema.json, Sources/KeyboardShortcutSettingsFileStore+Template.swift, Sources/CmuxSettingsJSONPathSupport.swift
Top-level codex.additionalHomes schema accepts array of path strings or objects with path and optional displayName. Settings file template includes example home, and allowlist includes the new JSON path for validation.
Settings parsing and managed defaults
Sources/KeyboardShortcutSettingsFileStore.swift
Parses codex.additionalHomes from settings files, validates and normalizes paths, stores them in UserDefaults, and wires side effects to notify CodexSessionHomeSettings when homes change via a new ManagedDefaultBatchSideEffects flag.
SQL loader updates and error localization
Sources/SessionIndexStore+CodexSQL.swift
SQL loader accepts dbPath, sessionsRoot, home, and sourceLabel, logs SQLite open/prepare failures via codexSQLLogger, and records localized, home-labeled errors into ErrorBag. SessionEntry construction includes codexHome and sourceLabel.
Multi-home session discovery and loading
Sources/SessionIndexStore.swift
Session discovery builds active homes list (default + additional), validates availability, spawns concurrent per-home loaders (SQL/disk), merges/sorts results, and applies global offset/limit pagination. Disk-scan fallback is home-aware and subscription to home-change notifications triggers reload.
UI display and resume command integration
Sources/SessionIndexView.swift
Session rows and popovers render optional sourceLabel with layout adjustments; help text and transcript preview use sourceAndCwdLabel. Resume commands export CODEX_HOME when a configured home is present.
Tests and validation
cmuxTests/SessionIndexViewTests.swift
Tests verify SQL loader labels entries with provided sourceLabel, resumeCommand includes CODEX_HOME set to configured home path, and empty configured homes without a sessions directory return zero entries and no errors.
Documentation and localization
docs/agent-hooks.md, Resources/Localizable.xcstrings
Adds docs showing codex.additionalHomes configuration and behavior; adds localized strings (en/ja) for default label, DB open/load failures, unsupported schema, and unavailable-home warnings.

Sequence Diagram

sequenceDiagram
  participant UI
  participant SessionIndexStore
  participant CodexSQLLoader
  participant DiskScanner
  participant ErrorBag
  UI->>SessionIndexStore: loadCodexEntries(needle, offset, limit)
  SessionIndexStore->>CodexSQLLoader: loadCodexEntriesViaSQL(home, dbPath?, sessionsRoot?, sourceLabel?)
  SessionIndexStore->>DiskScanner: loadCodexEntriesFromDisk(home, sourceLabel)
  CodexSQLLoader-->>SessionIndexStore: entries / localized errors
  DiskScanner-->>SessionIndexStore: entries / localized errors
  SessionIndexStore->>ErrorBag: record warnings/errors (home-labeled)
  SessionIndexStore-->>UI: merged, sorted, paginated entries
Loading

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~60 minutes

Poem

🐰 I hopped through homes both near and far,

Traced each path beneath the moonlit tar,
Sessions wear labels, tidy and bright,
Resume sets CODEX_HOME — snug and right,
The sidebar now hums with many a light.


Caution

Pre-merge checks failed

Please resolve all errors before merging. Addressing warnings is optional.

  • Ignore

❌ Failed checks (3 errors, 1 warning, 1 inconclusive)

Check name Status Explanation Resolution
Cmux Swift Blocking Runtime ❌ Error PR introduces two Task.sleep instances in production code: 60s auto-expire in SessionDragRegistry and 200ms debounce in SessionIndexView, both prohibited per swift-blocking-runtime rules. Replace Task.sleep with timer abstraction in SessionDragRegistry. Replace 200ms debounce with proper async sequence/publisher instead of Task.sleep per rules forbidding sleep-based timing in production code.
Cmux Swift File And Package Boundaries ❌ Error SessionIndexStore (1870/1826) and KeyboardShortcutSettingsFileStore (1654/1595) exceed budgets. PR adds 173+77 lines without shrinking. Rule needs >200 line reduction for oversized files. Extract Codex homes to new SwiftPM package for isolation and to shrink store files.
Cmux Full Internationalization ❌ Error Four new keys in Resources/Localizable.xcstrings only have en/ja translations, missing 17 of 19 supported locales: ar, bs, da, de, es, fr, it, ko, nb, pl, pt-BR, ru, th, tr, uk, zh-Hans, zh-Hant. Add translations for all 17 missing locales to sessionIndex.codexHome.defaultLabel, error.openDatabase, error.unsupportedSchema, and warning.unavailable in Resources/Localizable.xcstrings.
Docstring Coverage ⚠️ Warning Docstring coverage is 13.89% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
Cmux Swiftui State Layout ❓ Inconclusive No result was produced after verification. Marking as INCONCLUSIVE. Re-run the check or adjust instructions to produce a final result.
✅ Passed checks (12 passed)
Check name Status Explanation
Title check ✅ Passed The title 'Support multiple Codex homes in Vault' clearly and concisely describes the main change: adding support for discovering and managing sessions from multiple Codex home directories.
Linked Issues check ✅ Passed The PR fully implements all objectives from #4049: scanning default and additional Codex homes, aggregating sessions, adding source labels, handling unavailable homes gracefully, and preserving environment isolation.
Out of Scope Changes check ✅ Passed All changes are directly scoped to supporting multiple Codex homes: localization strings, schema/settings updates, session loading/indexing logic, UI display changes, and documentation are all necessary for this feature.
Cmux Swift Actor Isolation ✅ Passed All new models are Sendable value structs. SessionIndexStore is @MainActor. Nonisolated logger correctly declared. Side effects dispatch to MainActor. No isolation mistakes introduced or worsened.
Cmux No Hacky Sleeps ✅ Passed Check is not applicable. PR contains only Swift code, localization resources, documentation, and schema changes. No TypeScript, JavaScript, shell, or build/runtime script modifications are present.
Cmux Swift Concurrency ✅ Passed Modern async/await throughout. NotificationCenter async sequences with proper Task lifecycle management. withTaskGroup for parallel operations. No legacy patterns present.
Cmux Swift @Concurrent ✅ Passed New nonisolated async functions are properly called via Task.detached(), which explicitly hops out of @MainActor context. This satisfies the rule requirement for explicit actor hops.
Cmux Swift Logging ✅ Passed Logging complies with swift-logging.md: proper OSLog Loggers with nonisolated private let, all .warning() calls use privacy: .private redaction, no print/debugPrint/dump/NSLog in app code.
Cmux User-Facing Error Privacy ✅ Passed Error messages comply with privacy rules. Use user-configured display names/tilde paths, generic descriptions, concrete next steps, and sanitize sensitive details in debug logs.
Cmux Architecture Rethink ✅ Passed Clean observer pattern with proper state ownership. SessionIndexStore observes notification and reloads. No timing patches, locks, duplicate owners, or split lifecycle issues.
Cmux Swift Auxiliary Window Close Shortcuts ✅ Passed PR introduces no new NSWindow, NSPanel, or WindowGroup code in production sources. Only NSWindow usage is a test-only fixture in cmuxTests, which is allowed.
Description check ✅ Passed The pull request description is mostly complete and covers the key requirements from the template: a clear summary of changes, validation steps performed, and referenced issue closure.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch issue-4049-multiple-codex-home-dirs

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@greptile-apps

greptile-apps Bot commented May 13, 2026 •

Copy link
Copy Markdown
Contributor

Greptile Summary

This PR extends Vault's Codex session discovery to scan multiple CODEX_HOME directories configured via codex.additionalHomes in cmux.json, merges results across homes, displays per-home source labels, and resumes sessions from non-default homes by injecting CODEX_HOME. It also replaces Task.sleep-based debounce and drag-expiry with timer-backed equivalents.

  • Multi-home aggregation: codexSessionHomes() builds the list from the default ~/.codex plus configured extras, skipping unavailable paths with localized warnings; per-home SQL queries run concurrently via withTaskGroup and are merge-sorted before global pagination is applied.
  • Resume and labeling: AgentSpecifics.codex gains a codexHome field; non-default home sessions receive CODEX_HOME=<path> in their resume command and a source label rendered as a secondary chip in rows, popovers, and transcript headers.
  • Timer cleanup: SessionDragRegistry and SectionPopoverView replace ad-hoc Task.sleep with DispatchSourceTimer-backed expiry and a new MainActorDelayTimer debounce helper respectively.

Confidence Score: 4/5

Safe to merge after addressing the session ID regression in the SQL fallback path.

The SQL entry builder changes the fallback session ID format for default-home sessions whose Codex database row has no rollout_path, replacing the stable "codex:session-id" with "codex:/path/to/home:session-id". Any persisted session reference that relied on the old format would be orphaned on first launch. The rest of the change — multi-home aggregation, per-home source labels, CODEX_HOME resume injection, and the timer-backed debounce/expiry replacements — is well-structured and correctly actor-isolated.

Sources/SessionIndexStore+CodexSQL.swift — the codexEntry(from:home:sourceLabel:) fallback ID construction at line 212.

Important Files Changed

Filename Overview
Sources/SessionIndexStore+CodexSQL.swift Adds per-home SQL querying with source labels and resume env injection; introduces a session ID format change for default-home sessions without a rollout_path that breaks stored references.
Sources/SessionIndexStore.swift Replaces Task.sleep-based drag expiry with a DispatchSourceTimer, adds multi-home aggregation with merge-sort pagination, and wires a settings-change observer to trigger reload; all cleanly MainActor-isolated.
Sources/SessionIndexModels.swift Adds CodexSessionHome/CodexSessionHomeSetting models and sourceLabel to SessionEntry with an explicit initializer; all stored properties are immutable and the resume command correctly injects CODEX_HOME for non-default homes.
Sources/SessionIndexView.swift Adds source-label chips to session rows and popovers, replaces Task.sleep debounce with MainActorDelayTimer; the onCancel closure in wait() captures self strongly without [weak self], extending timer lifetime unnecessarily.
Sources/KeyboardShortcutSettingsFileStore.swift Adds parseCodexSection and parseCodexAdditionalHomes with dedup, tilde expansion, and standardization; correctly posts a settings-change notification when additionalHomes changes.
Resources/Localizable.xcstrings Adds four new localization keys for Codex home labels, errors, and warnings; all supported locales have entries.
cmuxTests/SessionIndexViewTests.swift Adds two new tests covering custom-home source label/resume command and empty-home no-warning behavior.
Sources/KeyboardShortcutSettingsFileStore+Template.swift Adds a commented-out additionalHomes example with a neutral illustrative path to the default settings template.
web/data/cmux.schema.json Adds a codex section with additionalHomes array schema supporting both string and object entries.

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart TD
    A[Vault session load triggered] --> B[codexSessionHomes]
    B --> C{Default ~/.codex exists & readable?}
    C -->|yes| D[Add default home]
    C -->|no| E[Skip silently]
    B --> F[For each additionalHome setting]
    F --> G{Home dir exists & readable?}
    G -->|yes| H[Add additional home]
    G -->|no| I[Warn + skip]
    D & H --> J[withTaskGroup: query each home concurrently]
    J --> K{state_5.sqlite present?}
    K -->|yes| L[loadCodexEntriesViaSQL with home + sourceLabel]
    K -->|no| M[loadCodexEntriesFromDisk with home + sourceLabel]
    L & M --> N[Merge all entries]
    N --> O[Sort by modified desc / apply offset+limit]
    O --> P[SessionEntry with sourceLabel + codexHome in AgentSpecifics]
    P --> Q{Resume?}
    Q -->|default home| R[codex resume sessionId ...]
    Q -->|additional home| S[env CODEX_HOME=path codex resume sessionId ...]
Loading

Reviews (19): Last reviewed commit: "merge: sync issue-4049 with main" | Re-trigger Greptile

Comment thread Sources/SessionIndexStore.swift Outdated
Comment thread Sources/SessionIndexModels.swift Outdated
@vercel

vercel Bot commented May 13, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
cmux Ready Ready Preview, Comment May 22, 2026 8:52pm

Comment thread Sources/SessionIndexStore.swift
Comment thread Sources/SessionIndexStore+CodexSQL.swift
Comment thread Sources/KeyboardShortcutSettingsFileStore+Template.swift
coderabbitai[bot]
coderabbitai Bot previously requested changes May 18, 2026

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@Sources/SessionIndexStore.swift`:
- Around line 1552-1557: Update the user-facing warning constructed in
SessionIndexStore.swift so it includes 1–2 concrete recovery actions: change the
string built for format/message (the String(localized: ...) and the composed
message variable) to append guidance such as “Please check that the directory
still exists or remove/update this configured path in settings.” and then add
that combined message into errorBag.add; repeat the same change for the other
occurrence around the block referenced at lines 1614–1620 so both warnings offer
clear next steps to the user.
- Around line 1483-1495: The code may pass duplicate sourceLabel values when two
homes share the same displayName (homes → home.label), making merged session
lists ambiguous; before the withTaskGroup loop compute a frequency map of
homes.map { $0.label } to detect collisions and for any label with count > 1
generate a disambiguated label (e.g., append or replace with an abbreviated path
derived from home.path or home.identifier) and use that disambiguated value
instead of home.label when setting sourceLabel in the loop that calls
loadCodexEntries; ensure you still respect showSourceLabels logic (use nil when
labels are suppressed) and reference the existing symbols showSourceLabels,
homes, sourceLabel, home.label, and loadCodexEntries to locate and apply the
change.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

Run ID: 3b475dd4-33c0-4cc9-a971-54911ec9f919

📥 Commits

Reviewing files that changed from the base of the PR and between 94e54ed and 6bb26e2.

📒 Files selected for processing (4)
  • Resources/Localizable.xcstrings
  • Sources/SessionIndexModels.swift
  • Sources/SessionIndexStore.swift
  • cmuxTests/SessionIndexViewTests.swift

Comment thread Sources/SessionIndexStore.swift Outdated
Comment thread Sources/SessionIndexStore.swift
coderabbitai[bot]
coderabbitai Bot previously requested changes May 18, 2026

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@docs/agent-hooks.md`:
- Around line 81-96: Add a short note to the Vault docs (after the cmux.json
example and the paragraph about sessions) clarifying error handling: state that
entries in "codex.additionalHomes" that do not exist, are unreadable, or are
empty are silently ignored and do not block discovery of sessions from other
homes; also mention that resuming a session still sets CODEX_HOME to the
matching valid directory and that invalid paths simply have no effect.
- Line 95: The sentence currently reads "Sessions from configured homes show
their source label in Vault" which is misleading; update that sentence in
docs/agent-hooks.md so it states that sessions from all homes show their source
label (e.g., "Sessions from all homes show their source label in Vault
(including the default home labeled 'Default Codex')"), replacing the existing
phrase to clarify that the default home is included.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

Run ID: 0c4c5848-bb33-4c15-a8d5-b21ce0ca96ba

📥 Commits

Reviewing files that changed from the base of the PR and between 6bb26e2 and 3e706e5.

📒 Files selected for processing (5)
  • Resources/Localizable.xcstrings
  • Sources/KeyboardShortcutSettingsFileStore+Template.swift
  • Sources/SessionIndexStore.swift
  • docs/agent-hooks.md
  • web/data/cmux.schema.json

Comment thread docs/agent-hooks.md Outdated
Comment thread docs/agent-hooks.md Outdated

@cubic-dev-ai cubic-dev-ai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

No issues found across 11 files

Re-trigger cubic

coderabbitai[bot]
coderabbitai Bot previously requested changes May 19, 2026

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@Resources/Localizable.xcstrings`:
- Around line 107125-107192: The four new localization keys
(sessionIndex.codexHome.defaultLabel, sessionIndex.codexHome.error.openDatabase,
sessionIndex.codexHome.error.unsupportedSchema,
sessionIndex.codexHome.warning.unavailable) only include "en" and "ja"; add
entries for the remaining locales (ar, bs, da, de, es, fr, it, ko, nb, pl,
pt-BR, ru, th, tr, uk, zh-Hans, zh-Hant) under each key, using the same
structure as existing localizations, set "state" to "translated" for each added
locale, and for lower-confidence locales supply the English fallback string as
"value" while providing higher-confidence translations where available (e.g.,
add a proper Korean translation for ko). Ensure the keys and JSON structure
exactly match the existing entries so tooling picks them up.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

Run ID: 6bc7b582-a371-4ee8-9430-b89f2982eb32

📥 Commits

Reviewing files that changed from the base of the PR and between 681c528 and f5ae39e.

📒 Files selected for processing (2)
  • Resources/Localizable.xcstrings
  • Sources/KeyboardShortcutSettingsFileStore.swift

Comment thread Resources/Localizable.xcstrings
@austinywang

Copy link
Copy Markdown
Contributor Author

@coderabbitai review

Prior actionable threads have been addressed and resolved; please review the current head.

@coderabbitai

coderabbitai Bot commented May 19, 2026

Copy link
Copy Markdown

@austinywang Sure! I'll kick off a fresh review of the current head right away.

✅ Actions performed

Full review triggered.

Comment thread Sources/SessionIndexStore+CodexSQL.swift
@austinywang
austinywang dismissed stale reviews from coderabbitai[bot], coderabbitai[bot], coderabbitai[bot], and coderabbitai[bot] May 19, 2026 05:39

Stale automated review; inline threads were addressed/resolved and current CodeRabbit status is passing.

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit be5a8f2. Configure here.

Comment thread Sources/SessionIndexStore.swift

This branch was successfully deployed

1 active deployment
Preview – cmux — d945ec21 Deployed May 22, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

stale-revisit Closed after 30+ days without activity; preserved for possible revisit or reopening.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Support multiple CODEX_HOME directories for Codex session discovery

3 participants