feat: publish local app improvements and download website - #10
Merged
Conversation
- resolveGjcResumeSessionRoot returns the session's own directory instead of the global sessions root; SessionManager.list scans only the supplied directory, so managed sessions one level below the root failed every resume with the sanitized 'GJC SDK configuration is invalid' error (4x on 08-15). - Thread an 'effort' run option through enrichGjcSdkRunOptions into the SDK session as thinkingLevel, validated against the known effort levels.
Server: - chat.send resolves the session's persisted active-model choice and lets it outrank the client's global default, wiring the previously dead resolveResumeModel store into the only run dispatch path (injectable for tests, exported through the providers barrel). - Regenerate the built-in profile snapshot from SDK 0.13.1 (30 -> 46 profiles, adds claude-opus-5/sonnet-5, grok-45, open-weights) and bump the provider models cache version so stale catalogs do not outlive the upgrade. - Resolve profile-name references in config.yml roles (modelProfile: default: <profile>) to real model selectors so a profile name never surfaces as a model id. Client: - New SessionModelPicker: changes only this session's default-agent model, derived from preset role mappings (effort suffixes stripped, provider groups ordered codex/claude/kimi/glm/grok first). - ModelPresetPicker gains an icon-only mode and moves next to the skill picker; preset groups follow the same ordering with Current pinned. - ReasoningEffortPicker and SkillPicker land in the toolbar; all composer popups render through body portals because the composer form clips overflow. - ContextUsageBadge shows context fullness beside the skill icon; the redundant model/effort/cwd/context status strip is removed. - Composer submits an effort option per message; the provider-entry guard regex is bounded to one line so the reasoningEffort passthrough is not a false positive.
…empts oauth.phase events broadcast to every connected client, and any tab with the login dialog closed cancelled every non-terminal attempt it heard about — starting a sign-in with a second app tab open killed the attempt instantly and bounced the dialog back to the provider list with no error. Closed tabs now ignore broadcasts; the owning tab still cancels on dialog close/unmount and the server times abandoned attempts out. Also open the browser when a callback-server flow lands directly on awaiting_input (the localhost listener races manual paste), and label the input for what it accepts: an authorization code or the full localhost callback URL.
Ship a separate Vite marketing site so the desktop app can stay untouched while another session works. The page pins the current GitHub beta artifacts, and the header/favicon use a black-and-white crayfish mark instead of the full-color mascot.
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.
Summary
Publish the four previously local-only commits on top of the restored main branch:
Verification
npm cinode scripts/fetch-bun.mjsnpm run verifynpm ci --prefix websitenpm test --prefix website(3 passed)npm run build --prefix websiteThe branch was assembled from the existing committed local stack; the parent worktree and untracked
docs/plans/were not modified.