Repository navigation
Conversation
Backend (8.9k -> 4.1k lines): - Remove WAL transaction system (journal, staged/original shadow files, crash recovery, compensation), fault-injection framework, and fs2 - Remove all file locks, optimistic concurrency checks, and backups; writes are plain sequential file operations by design - Drop hand-written JSON Schema validator; serde + JSONC parsing carry type validation instead - Collapse DDD layers (ApplicationService/UseCase/Repository/Store) into flat modules called directly by the Tauri command layer - Replace 9 error enums with a single AppError serialized as the frontend CommandError shape; keep all 25 command signatures and DTOs unchanged Frontend: - Rebuild settings UI as route-based pages (providers/models/agents/groups) backed by a typed CommandAdapter over Tauri invoke - Replace legacy stores and components with features/config modules Tests: - Replace transaction/crash-matrix suites with focused integration tests covering group switching, CRUD, reference protection, and model replacement (cargo test 8/8, npm run build green)
…ting - Split commands.rs into per-resource modules; remove dto.rs and replacement.rs - Add opencode_cli wrapper and list_custom_providers / opencode_list_models / opencode_resolve_binary commands - Only allow model operations on custom providers - Always resolve opencode config under <home>/.config on every platform - Drop rename/replace/reveal/validate/diagnostics commands and their tests
- Adapter/store expose opencode list models (prefetched at startup) with out-of-order response guard - Drop browser mock adapter, rename/replace/reveal/validate operations and diagnostics - Rework feedback into actionable toasts with a global Toaster; group-type switch confirms via dialog
The app hardcoded ~/.config/opencode/opencode.jsonc, so a user config living in opencode.json was never read: providers were empty and custom providers' models were mislabeled as builtin. Resolve the config file the same way the CLI does (opencode.jsonc preferred, opencode.json fallback) and deduplicate custom_provider_ids in opencode_cli.
Persist theme (light/dark) and locale (en/zh) in the app config file under state.preferences, exposed via a new save_preferences command. Add a light theme token set plus a header appearance control cluster, and extract all user-facing copy into en/zh dictionaries (en default).
Project stylesheets were unlayered, so base.css 'a { color: inherit }'
outranked Tailwind color utilities in @layer utilities. Every <Button href>
rendered as an <a> therefore ignored its variant color, leaving dark text on
light-theme primary buttons. Import the custom sheets with layer(base).
Keep v2.0's agent-form restructure; re-apply en/zh i18n on the merged files. Group name is now validated as required, the models list refresh button is removed, and group form pages no longer link back to the list.
…jections Model group types with the canonical native/slim/omo vocabulary while freezing the persisted wire values for config compatibility. Switch target projections from replace/clear to key-level merge and remove only the keys owned by the group, preserving residual configuration. Deleting a group and switching selection no longer touch target files.
…orage Move the built-in agent catalog into a single agents.catalog.json shared by the Rust backend (include_str!) and the frontend, replacing the hardcoded list. Remove the project markdown agent storage path and its project_root plumbing; agents now resolve to inline or global markdown only.
…s chrome Canonicalize group types at the IPC boundary with explicit wire conversion. Split the agents page into custom/native/slim/omo tabs, block reserved built-in ids on create, and simplify the group type switch dialog. Remove the header/sidebar status readouts, refresh icons, search and form styling, and enable resolveJsonModule for the shared catalog import.
…ource validations
…nd tighten upgrade isolation
…offload IPC handlers
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.