Skip to content

feat(brain): add tinycloud:general-medium as a pickable Cloudglue brain model - #148

Merged
kdr merged 2 commits into
mainfrom
tinycloud-general-medium
Aug 5, 2026
Merged

feat(brain): add tinycloud:general-medium as a pickable Cloudglue brain model#148
kdr merged 2 commits into
mainfrom
tinycloud-general-medium

Conversation

@kdr

@kdr kdr commented Aug 5, 2026

Copy link
Copy Markdown
Owner

What

Adds tinycloud:general-medium as a second pickable Cloudglue brain model alongside tinycloud:advanced (which stays the turnkey default), on all three surfaces:

  • src/providers/brain/vision.ts — the single source of truth is now a model list (cloudglueBrainModels()); cloudglueBrainModel() keeps returning the advanced-first default. The see-path provider registration consumes the list, so setup llm cloudglue tinycloud:general-medium resolves for the CLI see brain too.
  • src/extension/overcast.tsregisterProvider and the turnkey setModel now consume the shared descriptors instead of two duplicated inline literals, so both models appear in /model.
  • Launch-time stomp fix (exposed by having a second model): the turnkey session_start block re-set the model to advanced even when the session was launched with an explicit --model cloudglue/tinycloud:general-medium. An already-active Cloudglue model is now left alone; a non-Cloudglue ambient default is still claimed as before.

Users pick the new model via /model, --model cloudglue/tinycloud:general-medium at launch, or setup llm cloudglue tinycloud:general-medium.

Verification

  • npm run typecheck — clean.
  • npm test1317/1318 pass. The single failure (face-index.test.ts "aborting during add --all backpressure") is a pre-existing timing flake: it fails identically on clean main under full-suite load and passes 131/131 when the file runs alone.
  • SKIP_BUILD=1 npm run test:e2e (fresh npm run build) — 364/367 pass. The 3 failures (agent.mentions_watch, archiveagent.names_bucket, archiveagent.add_verified) are the agent-mode cases that go live when a Cloudglue key is ambient; every brain completion is currently dying upstream with 403 Your account is currently being verified… (AWS account-verification on the Cloudglue backend), unrelated to this change.
  • Live headless probes against the built dist:
    • overcast -p … --mode json --model cloudglue/tinycloud:general-medium → session runs with "provider":"cloudglue","model":"tinycloud:general-medium" (previously stomped back to advanced).
    • same command without --model"provider":"cloudglue","model":"tinycloud:advanced" (turnkey default preserved).
  • New unit test asserts the model list order (advanced first), ids, and image capability.

Note

Low Risk
Model registration and default-selection logic changes are localized; behavior is covered by new unit tests and preserves advanced as the default when no explicit choice is set.

Overview
Adds tinycloud:general-medium as a second pickable Cloudglue brain alongside tinycloud:advanced (still the turnkey default). cloudglueBrainModels() in vision.ts is now the single source of truth for descriptors; the pi extension’s provider registration, turnkey setModel, and CLI see brain registration all consume that list so /model, --model, and setup llm can target the new id.

Launch-time fix: turnkey session init no longer overwrites an already-selected Cloudglue model (e.g. --model cloudglue/tinycloud:general-medium); it only claims the default when the active provider is not Cloudglue and the profile has no pinned setup llm.

The TUI header model field can be a getter so the status row shows the live ctx.model id after /model switches, matching the footer.

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

…in model

Generalize the Cloudglue brain descriptor into a model list
(cloudglueBrainModels) with tinycloud:advanced staying the turnkey
default, and consume it from both the see-path provider registration and
the pi extension — replacing the two inline literals that duplicated the
descriptor despite the "single source of truth" comment.

Also fix a launch-time stomp the second model exposed: the turnkey
session_start setModel reset the brain to advanced even when the session
was launched with an explicit --model cloudglue/tinycloud:general-medium.
An already-active Cloudglue model is now left alone; a non-Cloudglue
ambient default is still claimed as before.

@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 using high effort 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.

Want reviews to match your repository better? Bugbot Learning can learn team-specific rules from PR activity. A team admin can enable Learning in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit 78742ed. Configure here.

Comment thread src/extension/overcast.ts
…napshot

The banner status row captured a static model label at session_start, so
launching with --model cloudglue/tinycloud:general-medium showed
tinycloud:advanced in the header while the footer (live ctx.model) was
right. HeaderOptions.model now also accepts a getter (the same thunk
pattern setup already uses) and the extension passes the live ctx.model
with the old static chain as the pre-bind fallback.
@kdr
kdr merged commit 9fc2b4f into main Aug 5, 2026
5 checks passed
@kdr
kdr deleted the tinycloud-general-medium branch August 5, 2026 04:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant