Skip to content

fix(web): restore Studio IDE playflow CTAs after rebuild - #2439

Open
kk-agent wants to merge 2 commits into
mainfrom
cursor/studio-playflow-ide-ctas-1805
Open

kk-agent wants to merge 2 commits into
mainfrom
cursor/studio-playflow-ide-ctas-1805

Conversation

@kk-agent

@kk-agent kk-agent commented Oct 17, 2026 •

Copy link
Copy Markdown
Collaborator

Canonical issue

Fixes #2435.

Hayden / AXIOM dogfood URL: https://uvai.io/studio?video=https://www.youtube.com/watch?v=pBsT6v-ciO8

Main merge: this branch is merged with origin/main through #2437 (feat(web): restore Studio Ship this playflow), which already closed #2435. Remaining delta is Events honesty, pack workbench, flag-gated Act, and softened paste copy on top of Ship this.

Outcome

On a stored pack like pBsT6v-ciO8 (transcript + architecture + artifacts + stack.tools, no events field):

  • Ship this (from feat(web): restore Studio Ship this playflow #2437) stays the pack ZIP CTA. SeaDance/Cluely skip/unknown do not disable it.
  • Events (never Insights) plus “this pack has no extracted events” and the architecture/artifacts workbench.
  • Retry transcript in the toolbar on fail (and in the Transcript tab).
  • Act on this run only when agentWorkflowUi is on (flag still defaults false).
  • Intent cards for review_action say Review this result / Needs review.
  • Paste-ready copy is “act, export, or save” — not “run tools”.
  • C (player overlay) and D (export toast at bottom-4) stay.

Scope

  • Included:
  • Explicitly excluded:
    • Origin G.A.T.E. / Check preflight restore
    • Fake events from keyframes/concepts
    • ClipToAction
    • Ship checkout (Ship this is ZIP export only)

Risk

Verification

Head SHA: c1ccfae77886293a70eb210ef5b0bb0acfff9899

  • Merged origin/main (feat(web): restore Studio Ship this playflow #2437). Conflicts were complementary (Ship this + Events/Act), not opposing intents.
  • Focused tests after merge: npm --workspace=apps/web exec vitest run on playflow + three-panel + build-live + job-strip + pipeline-status + official-templates + unification → 9 files, 62 passed
  • Required CI
  • Review threads resolved

Production evidence

UI-only. Preview on Vercel v0-uvai after CI. Do not treat the live pack GET as a production Studio E2E.

Agent handoff

QA on pBsT6v-ciO8

  1. Open /studio?video=https://www.youtube.com/watch?v=pBsT6v-ciO8.
  2. Events tab: Events (not Insights) + honest empty copy + From this pack architecture/artifacts.
  3. Tools tab: SeaDance / Cluely Unknown — UVAI cannot run this check. Ship this and Build live still enabled.
  4. On a failed transcript: Retry transcript.
  5. With agentWorkflowUi: Act on this run.
Open in Web Open in Cursor 

Wire Retry transcript, honest empty Events, skip/unknown stack
checks, review_action cards, and Act on this run into the IDE
shell so pBsT6v-ciO8 is no longer a dead rail.

Co-authored-by: KK <kk-agent@users.noreply.github.com>
@vercel

vercel Bot commented Oct 17, 2026 •

Copy link
Copy Markdown
Contributor

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
v0-uvai Ready Ready Preview, v0 Oct 17, 2026 8:35pm UTC

@github-actions

github-actions Bot commented Oct 17, 2026 •

Copy link
Copy Markdown
Contributor

🔍 PR Validation

✅ Current validation passed.

@coderabbitai

coderabbitai Bot commented Oct 17, 2026 •

Copy link
Copy Markdown
Contributor

Important

  • 🔍 Trigger review

This repository does not receive automatic reviews because it has fewer than 10 stars.

⚙️ Run configuration
  • Configuration used: Repository: groupthinking/EventRelay/.coderabbit.yaml
  • Review profile: ASSERTIVE
  • Plan: Advanced
  • Run ID: 08ac9e1c-80fc-4bd5-b95f-bd3de668d575
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 17, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-17T20:35:35.206320Z b9f78b4 Draft marked ready
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

Keep #2437 Ship this ZIP CTA and skip/unknown stack rows. Keep this
branch's Events honesty, pack workbench, Act on this run, and
transcript-tab retry. Deduplicate toolbar Retry and Tools stack lists.

Co-authored-by: KK <kk-agent@users.noreply.github.com>
@github-actions github-actions Bot added documentation Improvements or additions to documentation javascript Pull requests that update javascript code tests labels Oct 17, 2026

@chatgpt-codex-connector chatgpt-codex-connector 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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: b9f78b4441

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

statusLabel: stackCheckStatusLabel(status),
};
});
const actionCards = (workflowActions?.actions ?? []).map((action) => studioActionCard(action));

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Scope Act results to the selected pack

When a user completes Act for pack A and then selects stored pack B—or changes packs while A is polling—workflowActions remains associated only with component state, so this mapping renders A's cards in B's Intent tab; the existing export path also consumes those stale actions and can package them with B. Clear/cancel Act state when the selection changes and discard late results whose URL/run does not match the current selection.

AGENTS.md reference: AGENTS.md:L70-L75

Useful? React with 👍 / 👎.

Comment on lines +579 to +580
const outputStackChecks = stackChecks.map((item) => {
const status = stackCheckStatus(item, completedChecks, 'anonymous');

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Derive stack-check status from the actual viewer

For a signed-in user whose pack names a runnable Vercel, Shopify, or GitHub check, this constant forces stackCheckStatus down the anonymous branch, so the newly rendered Tools panel incorrectly says the check was skipped because the user is signed out rather than showing its pending or completed state. Pass the authenticated viewer state instead of hard-coding anonymous.

Useful? React with 👍 / 👎.

Comment on lines +1061 to +1065
{showAgentWorkflowUi ? (
<button
type="button"
onClick={() => void act()}
disabled={actBusy || busy || !getYouTubeId(url || selected?.url || '')}

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Require an analyzed run before enabling Act

With agentWorkflowUi enabled, merely typing a valid URL (or choosing Sample) enables this button even when selected is undefined; act() then submits a URL-only payload directly to startVideoToActions, bypassing runAnalysis's emitVideoPack and stored-pack path and producing actions without the hashed Video Pack the Studio workflow requires. Gate the CTA on a matching analyzed selection rather than a parseable URL alone.

AGENTS.md reference: AGENTS.md:L8-L14

Useful? React with 👍 / 👎.

Comment on lines +1174 to +1178
promotePack ? (
<PackWorkbench
architecture={packFormation.architecture}
artifacts={packFormation.artifacts}
onExport={() => void exportPkg()}

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Render tools in the promoted pack workbench

For an empty-events pack that contains stack.tools but no architecture or artifacts, studioPromotePackWorkbench still promotes this panel and the empty-state copy says the stack is shown below, but only architecture and artifacts are passed, leaving an otherwise blank “From this pack” card with an Export button. Pass the tools into the workbench (or direct the copy to the Tools tab) so tool-only packs retain their advertised pack-quality content.

AGENTS.md reference: AGENTS.md:L34-L39

Useful? React with 👍 / 👎.

@github-actions

Copy link
Copy Markdown
Contributor

✅ E2E Test Results: ALL TESTS PASSED

Metric Value
Status 🟢 GREEN
Total Tests
Passed 16
Failed
Deployment https://v0-uvai-h5hvdj87j-garv1.vercel.app
Test Output
ery request without persisting it�[32m 1�[2mms�[22m�[39m
 �[32m✓�[39m tests/e2e/pipeline.test.ts�[2m > �[22mEventRelay E2E — Live Deployment�[2m > �[22mTemplate Gallery�[2m > �[22mhomepage returns 200 with HTML�[33m 326�[2mms�[22m�[39m
 �[32m✓�[39m tests/e2e/pipeline.test.ts�[2m > �[22mEventRelay E2E — Live Deployment�[2m > �[22mTemplate Gallery�[2m > �[22mfeatures page contains template/workflow markup�[33m 321�[2mms�[22m�[39m
 �[32m✓�[39m tests/e2e/pipeline.test.ts�[2m > �[22mEventRelay E2E — Live Deployment�[2m > �[22mTemplate Gallery�[2m > �[22mfeatures page surfaces at least 5 workflow/template indicators�[33m 339�[2mms�[22m�[39m
 �[32m✓�[39m tests/e2e/pipeline.test.ts�[2m > �[22mEventRelay E2E — Live Deployment�[2m > �[22mVideo Pack Pipeline�[2m > �[22mPOST /api/video/pack accepts a YouTube URL without hanging�[33m 2078�[2mms�[22m�[39m
 �[32m✓�[39m tests/e2e/pipeline.test.ts�[2m > �[22mEventRelay E2E — Live Deployment�[2m > �[22mVideo Pack Pipeline�[2m > �[22mGET /api/video/pack resolves to a ready pack with evidence lineage�[33m 2723�[2mms�[22m�[39m
 �[32m✓�[39m tests/e2e/pipeline.test.ts�[2m > �[22mEventRelay E2E — Live Deployment�[2m > �[22mError Handling�[2m > �[22mmissing URL returns 400, not a hang�[32m 197�[2mms�[22m�[39m
 �[32m✓�[39m tests/e2e/pipeline.test.ts�[2m > �[22mEventRelay E2E — Live Deployment�[2m > �[22mError Handling�[2m > �[22minvalid URL returns 400 quickly, not a hang�[32m 186�[2mms�[22m�[39m
 �[32m✓�[39m tests/e2e/pipeline.test.ts�[2m > �[22mEventRelay E2E — Live Deployment�[2m > �[22mError Handling�[2m > �[22mPOST /api/video/pack with no body returns 400�[32m 186�[2mms�[22m�[39m
 �[32m✓�[39m tests/e2e/pipeline.test.ts�[2m > �[22mEventRelay E2E — Live Deployment�[2m > �[22mDashboard�[2m > �[22m/dashboard returns 200�[32m 287�[2mms�[22m�[39m
 �[32m✓�[39m tests/e2e/pipeline.test.ts�[2m > �[22mEventRelay E2E — Live Deployment�[2m > �[22mDashboard�[2m > �[22m/dashboard contains agent or pipeline visualization markup�[32m 220�[2mms�[22m�[39m
 �[32m✓�[39m tests/e2e/pipeline.test.ts�[2m > �[22mEventRelay E2E — Live Deployment�[2m > �[22mAPI Health�[2m > �[22mGET /api returns a response (not 404)�[33m 382�[2mms�[22m�[39m
 �[32m✓�[39m tests/e2e/pipeline.test.ts�[2m > �[22mEventRelay E2E — Live Deployment�[2m > �[22mAPI Health�[2m > �[22mretired /api/pipeline routes are gone (no pipeline served)�[32m 104�[2mms�[22m�[39m
 �[32m✓�[39m tests/e2e/pipeline.test.ts�[2m > �[22mEventRelay E2E — Live Deployment�[2m > �[22mStatic Assets�[2m > �[22mhomepage has proper meta tags�[32m 209�[2mms�[22m�[39m
 �[32m✓�[39m tests/e2e/pipeline.test.ts�[2m > �[22mEventRelay E2E — Live Deployment�[2m > �[22mStatic Assets�[2m > �[22m/features page returns 200�[32m 229�[2mms�[22m�[39m

�[2m Test Files �[22m �[1m�[32m1 passed�[39m�[22m�[90m (1)�[39m
�[2m      Tests �[22m �[1m�[32m16 passed�[39m�[22m�[90m (16)�[39m
�[2m   Start at �[22m 20:36:22
�[2m   Duration �[22m 9.86s�[2m (transform 47ms, setup 0ms, import 60ms, tests 9.70s, environment 0ms)�[22m


This branch was successfully deployed

1 active deployment
Preview — c1ccfae7 Deployed Oct 17, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation javascript Pull requests that update javascript code tests

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Restore Studio playflow CTAs after IDE rebuild (B/E/F/G)

2 participants