Parked on a dependency, NOT a review/code block: studio-engine 0.12 must merge (engine PR #12) + gem push before this can submit. Adoption is BUILT + verified — integration (7) + e2e green, live on :3011 via local engine 0.12. Cleared the stale 'waiting approval' badge (the app-local demo was already approved ~3h ago; we pivoted to engine-first). Resumes automatically on publish: revert Gemfile override -> bundle update studio-engine -> commit -> full-suite-check + dor-check -> PR into release -> submitted.
Created
Jul 08, 01:50
Started
Jul 08, 07:19
Completed
Jul 08, 16:55
DevOps handoff
Type
Feature
Shape
ui+db
Worktree Slug
model-page-protocol
Repositories
mcritchie-studio
Release Slug
—
Branch
feat/model-page-protocol
Acceptance Criteria
Expected Test Plan
Checks Run
How long this task spent in each testing phase — Build → Local Certification → CI → Review → Operator Acceptance.
Build
20 minutes
Completed
Local Certification
—
Missing
CI
—
Missing
Review
about 6 hours
Completed
Operator Acceptance
about 15 hours so far
In progress
Stage Timeline
Who handled each stage, the time it took (measured), and the model / tokens / cost reported (best-effort) — plus who's on it right now. — means the agent didn't report that metric.
Conversation
QA review feedback, agent handoffs, and follow-up notes for this task.
Pivoted to studio-engine. This task is now the Release-only ADOPTION of the engine model-page protocol (engine PR #12 / task model-page-engine-protocol). Parked pending studio-engine 0.12 publish; app-local ModelPage/controller/view will be deleted and replaced by Studio::ModelPage.register("release", Release, lookup: :slug) + studio_model_path link. App-local proof already operator-approved (live on :3011).
Adoption BUILT + verified against local engine 0.12 (temporary Gemfile path override; NOT committed). Consumer suites green: integration (7) + e2e; live on :3011. Deleted app-local ModelPage/controller/view + app-local tests; added config/initializers/model_pages.rb (registers release via to_prepare); routes cleanup; link -> studio_model_path; new test/integration/model_page_adoption_test.rb. REMAINING (gated on studio-engine 0.12 publish): (1) revert Gemfile override to '~> 0.11' + bundle update studio-engine (lock -> 0.12.0). (2) commit. (3) full-suite-check + dor-check. (4) push + PR into release + move submitted. No further code work.
Parked on a dependency, NOT a review/code block: studio-engine 0.12 must merge (engine PR #12) + gem push before this can submit. Adoption is BUILT + verified — integration (7) + e2e green, live on :3011 via local engine 0.12. Cleared the stale 'waiting approval' badge (the app-local demo was already approved ~3h ago; we pivoted to engine-first). Resumes automatically on publish: revert Gemfile override -> bundle update studio-engine -> commit -> full-suite-check + dor-check -> PR into release -> submitted.
Scout report: merge-ready - Backend light review: model-page protocol adoption is clean; to_prepare registration is the correct reloader-safe hook, no sensitive-column leak, no dangling refs. Reporter: carl Outcome: merge-ready Findings: - config/initializers/model_pages.rb uses config.to_prepare — correct: re-registers Release on every Zeitwerk reload, avoids stale-constant trap a bare initializer would cause. - Release.as_json exposure is safe: schema is timestamps/SHAs/URLs/branch + devops jsonb (metadata,smoke_seal); no password/token/secret columns; page is admin-gated (route + link). - No app-local ModelPage existed on origin/release; nothing deleted, no orphaned routes/helpers/tests. Task handoff text 'DELETES app-local ModelPage' does not match this diff. - Gemfile ~> 0.12, Gemfile.lock 0.12.0, DEPENDENCIES ~> 0.12 all consistent; Studio.routes(self) at routes.rb:121 draws /models; admin? on User#98. - NIT: 'Non-admins never see Model link' only asserted for logged-out; a logged-in viewer link-hidden assertion would fully cover the criterion (viewer only tested for route redirect). Questions: - none Checks: - [integration] model_page_adoption_test — registered?, admin JSON+console cmd, non-admin redirect, not-found, random redirect, link shown/hidden - [e2e] model_page.spec.js — admin opens release model page + random sample - CI green: scan_ruby, scan_js, lint, test all SUCCESS
Scout report: merge-ready - Engine 0.12 model-page adoption; acceptance all met; full-suite+rubocop certs valid by tree-equality; renders styled dark+light+mobile. Reporter: shannon Outcome: merge-ready Findings: - PR body claims it removes app-local ModelPage/controller/view/routes, but diff removes none and none exist on release (Admin::ModelsController is a separate data-browser, correctly untouched) — inaccurate but harmless; trim the claim. - Non-blocking: add an assertion that a logged-in NON-admin (viewer) sees no Model link on /deployments/all; only logged-out is asserted (guard is correct). Questions: - none Checks: - full-suite@9b708a0680bcadb018c3252b19b54525a51d920d == PR HEAD tree hash → cert VALID (dor-check STALE was a false positive from running on main) - rubocop@9b708a06 == PR tree → clean; integration 7 green; e2e green; unit/component in engine 0.12 - engine show view role classes (bg-inset/bg-surface-alt/border-subtle/btn-outline) all used 29-231x in host → in compiled Tailwind; no app/views/studio/models shadow
Avi review approved (2 merge-ready: shannon PRIMARY + carl LIGHT). All 6 acceptance criteria met; full-suite/rubocop certs valid by tree-equality (fingerprint = branch HEAD tree). Corrected PR body: it claimed to delete an app-local ModelPage prototype, but the diff deletes nothing (none exists on release; separate Admin::ModelsController untouched) — body now matches diff. Non-blocking follow-up (not rework): add one assertion that a logged-in NON-admin viewer can't see the Model link (only logged-out is asserted). Ready for Steffon's qa-release sweep.
Sealed-bid sizing
Edit →Alex (PM)
—
Avi (PO)
SMALL
Dev
SMALL
Actual
XL
We emailed a one-tap sign-in link to . It expires shortly and can only be used once.
No email? Check spam, or close this and try again.