Repository navigation
feat(studio): settings — runtime inventory, storage health, settings workspace - #1762
Merged
Merged
Conversation
samuv
added this pull request to stack #1766
September 22, 2026 08:01
samuv
force-pushed
the
studio/settings
branch
from
September 22, 2026 09:03
ba7e56b to
a7e9200
Compare
samuv
force-pushed
the
studio/settings
branch
from
September 22, 2026 09:13
a7e9200 to
935a5cb
Compare
samuv
force-pushed
the
studio/settings
branch
from
September 22, 2026 09:23
935a5cb to
feb98c2
Compare
3 of 15 tasks
samuv
force-pushed
the
studio/settings
branch
from
September 22, 2026 09:59
feb98c2 to
622ccae
Compare
samuv
force-pushed
the
studio/settings
branch
from
September 23, 2026 08:56
622ccae to
af60f8d
Compare
samuv
force-pushed
the
studio/settings
branch
from
September 23, 2026 09:40
af60f8d to
ee9eb5c
Compare
samuv
force-pushed
the
studio/settings
branch
from
September 23, 2026 10:47
ee9eb5c to
5a01a64
Compare
samuv
force-pushed
the
studio/settings
branch
from
September 23, 2026 11:54
5a01a64 to
d763950
Compare
…workspace Implementation layer of docs/acceptance/studio-settings.md, built against plan commit f43bcb0. BFF: GET /api/v1/settings/runtime as a read-only allowlisted projection (build id, server implementation, provider display endpoint, model and provider inventory with synthesised provider rows, fixed deployment- managed management flags), calling server.info only under the server_info feature and models.list only under modelSelection; GET /api/v1/storage/health mapping the daemon's storage health with decimal- string counts and null byte figures unless marked available, gated on storageHealth. Both behind the bootstrap's session gate; no mutations. Web: the eight-section settings workspace ported from the prototype (profile with sign-out, agent, appearance, memory, learning, models, storage, about); the sheet, switch, and use-mobile primitives restored; chat's and the side thread's model pickers re-wired to the live inventory, replacing the chat layer's empty stub; "Settings" joins the nav. The keyboard-shortcuts link waits for its own layer. 89 server and 227 web Vitest proofs; smoke-tested against a spawned mecated --mock (degraded paths: no models listed, storage health off). Tracking: #1736 Signed-off-by: Samuele Verzi <samu@stacklok.com>
samuv
force-pushed
the
studio/settings
branch
from
September 23, 2026 12:54
d763950 to
91d7d48
Compare
This was referenced Sep 23, 2026
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
What lands
GET /api/v1/settings/runtime(read-only allowlisted projection;server.infoonly under theserver_infofeature,models.listonly undermodelSelection) andGET /api/v1/storage/health(gated onstorageHealth); both behind the session gate; no mutations.Verification
89 server and 227 web Vitest proofs (14 ACs, 0 missing);
task studio:check,task docspass; smoke againstmecated --mock(runtime settings served with exactly the contract's keys; degraded paths for models and storage).Further amendments
"Report a problem" now links to
stacklok/mecatlissues.The models section lists the deployment-managed controls with their reasons.
Two comments that referred to a component this repository does not have are rewritten.
Plan status. This layer's diff moves its acceptance plan to
landed(header and index), per the plan lifecycle; the transition is authoritative only when this PR merges, andtask ac-trace-strictnow gates the plan.Re-verified on the rebased stack:
task studio:checkpasses (128 server + 268 web Vitest), andtask ac-trace-strictpasses with every Studio plan gated aslanded(141 ACs, 0 failures).Development stage
Contract linkage
gh stack) delivery for the whole Studio series: nothing merges until every layer is reviewed, so the plan's approval-by-merge event is deferred to the end (recorded in each plan's Delivery line), and each implementation layer records the exact plan commit it built against.docs/acceptance/studio-settings.mdf43bcb09b5c78331bc8566a1bfe66dd198d125d8(the plan layer below; not yet merged — stacking exception above)Interface conformance
Issue relationship
Relates to #1750 (parent #1736; stack #1766). Non-closing: the step completes when both of its layers merge.
Type of change
Test plan
Baseline checks
task lint)task test)go run ./cmd/mecademo)task docs)Studio gates (this workspace is not covered by
task lint/task test, which are Go-only):task studio:check(Biome, typecheck, Vitest, generated-drift),task ac-trace— all pass; see Verification above.User-facing change
Studio gains Settings and a live model picker in chat.
Special notes for reviewers
Part of a fourteen-layer stack; review bottom-up. Nothing merges until the whole series is reviewed.