feat(tui): add unified task state color convention with icons#5
Open
feat(tui): add unified task state color convention with icons#5
Conversation
…nomalyco#24146) Co-authored-by: Simon Klee <hello@simonklee.dk>
Moves effect logging, observability, runtime utilities, flags, installation version info, and process utilities from opencode to core package. This enables better code sharing across packages and establishes core as the single source of truth for foundational utilities. All internal imports updated to use @opencode-ai/core paths for consistency.
…nagement Move the Global module from packages/opencode/src/global to packages/core/src/global to provide a unified location for managing XDG directories and application paths. This eliminates duplicate path definitions across packages and ensures consistent access to data, config, cache, state, log, and bin directories throughout the codebase.
Moved the cross-spawn-spawner module from packages/opencode to packages/core to enable code sharing across the monorepo. This consolidates the process spawning infrastructure into the core package so other packages can use cross-platform child process spawning without duplicating the implementation. Updated all import statements across the codebase to reference the new location (@opencode-ai/core/effect/cross-spawn-spawner). Removed the local copy from the opencode package along with its tests.
The cross-spawn-spawner module has been moved from src/effect/ to src/ to simplify the core package structure. The src/types.d.ts file which contained unused type declarations has also been removed. All imports throughout the codebase have been updated to reflect the new location. This change reduces the package's internal complexity by flattening the module hierarchy and removing dead code, making future maintenance easier.
- Add STATUS_COLORS constant with 6 states: running, waiting, attention, error, done, idle - Each state includes color (ISO 3864 based), icon, and text for WCAG 1.4.1 compliance - Add StatusIndicator, ProjectStatusBadge, SessionStateBanner components - Update ToastShow event to include projectName for multi-project notifications - Update Toast component to display project name and use status colors Closes anomalyco#24404
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.
Issue for this PR
Closes anomalyco#10287
Type of change
What does this PR do?
Adds automatic model fallback chain when the primary model fails after all retries are exhausted.
When a model encounters an error that retries cannot resolve, the processor now checks if a
fallbackModelschain was configured (e.g. viafallback_modelin agent config). If so, it resolves the next model in the chain and re-attempts the stream with that model.Error classification for fallback:
Implementation details:
fallbackModelsfield toMessageV2.UserschemaresolveFallbackChainhelper toProviderservice (returns{model, remaining})whileloop inSessionProcessor.process()to iterate through fallback modelshalt()to classify errors and setctx.shouldFallbackflag when appropriateHow did you verify your code works?
bun typecheckpasses with zero errors in modified filestest/session/fallback.test.ts:Checklist