Skip to content

feat(scratchnode): lock NodeBench private handoff#404

Closed
HomenShum wants to merge 1 commit into
mainfrom
codex/live-keys-home-v4
Closed

feat(scratchnode): lock NodeBench private handoff#404
HomenShum wants to merge 1 commit into
mainfrom
codex/live-keys-home-v4

Conversation

@HomenShum
Copy link
Copy Markdown
Owner

Summary

  • lock the ScratchNode Live ↔ NodeBench AI product boundary in docs
  • add deterministic ScratchNode v5 → NodeBench private event notebook handoff URLs
  • extend live backend dogfood to enforce scratchnode.live/public and nodebenchai.com/private URL boundaries

Verification

  • npx tsc --noEmit --pretty false
  • npx vitest run convex/events.runtime-boundary.test.ts
  • npm run build
  • local patched home-v5 + real Convex config: npm run dogfood:proto-live-backend (3 passed)

Known existing harness gap

  • npx vitest run convex/tests/scratchnode.events.test.ts is blocked by unresolved convex-test in the current install, despite package.json declaring it. This branch does not touch that harness.

@vercel
Copy link
Copy Markdown

vercel Bot commented May 27, 2026

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

Project Deployment Actions Updated (UTC)
nodebench-ai Ready Ready Preview, Comment May 27, 2026 5:07pm

Request Review

@augmentcode
Copy link
Copy Markdown

augmentcode Bot commented May 27, 2026

🤖 Augment PR Summary

Summary: Locks the ScratchNode Live (public) ↔ NodeBench AI (private) boundary and adds deterministic handoff URLs from the ScratchNode v5 proto into NodeBench private event notebooks.

Changes:

  • Adds an architecture doc clarifying public/private surfaces, the URL contract, data boundary, trace expectations, and QA gates.
  • Updates public/proto/home-v5.html to compute a canonical NodeBench workspace base URL and to build private-event + sign-in handoff URLs.
  • Adds “Continue in NodeBench” entrypoints in the menu, notes sheet, and sign-in sheet.
  • Extends the Playwright dogfood spec to assert boundary invariants (no scratchnode.com regression) and verify the NodeBench handoff UI/URL rendering.

Technical Notes: Handoff URLs carry source=scratchnode, room, and an encoded return back to the ScratchNode event URL; the e2e test now enforces these invariants.

🤖 Was this summary useful? React with 👍 or 👎

Copy link
Copy Markdown

@augmentcode augmentcode Bot left a comment

Choose a reason for hiding this comment

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

Review completed. 2 suggestions posted.

Fix All in Augment

Comment augment review to trigger a new review at any time.

Comment thread public/proto/home-v5.html
var WORKSPACE_BASE_URL = (function() {
try {
var h = location.hostname || '';
var proto = (location.protocol === 'http:' || location.protocol === 'https:') ? location.protocol : 'https:';
Copy link
Copy Markdown

@augmentcode augmentcode Bot May 27, 2026

Choose a reason for hiding this comment

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

public/proto/home-v5.html:1134 — WORKSPACE_BASE_URL inherits location.protocol when running on nodebenchai.com, which can produce http://... handoff/sign-in URLs if the page is served over HTTP. That can break auth redirects and undermines the intended transport guarantees for the private workspace boundary.

Severity: medium

Fix This in Augment

🤖 Was this useful? React with 👍 or 👎, or 🚀 if it prevented an incident/outage.

Comment thread public/proto/home-v5.html
}
closeSheet();
toast('Magic link sent to ' + email, 'Check your inbox.');
toast('Magic link sent to ' + email, 'Check your inbox. Return target: NodeBench event notebook.');
Copy link
Copy Markdown

@augmentcode augmentcode Bot May 27, 2026

Choose a reason for hiding this comment

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

public/proto/home-v5.html:2413 — sendMagicLink() doesn’t actually attach or compute a return URL, but the toast claims the return target is the NodeBench event notebook. This could mislead users if the magic-link flow returns them elsewhere (or remains a stub).

Severity: low

Fix This in Augment

🤖 Was this useful? React with 👍 or 👎, or 🚀 if it prevented an incident/outage.

@github-actions
Copy link
Copy Markdown

✅ Dogfood Visual QA Gate: PASSED

Check Status
Screenshots 23 captured (pass)
Walkthrough 9 chapters (pass)
Key Frames 9 extracted (pass)
Scribe Steps 8 how-to steps (pass)
Build success
Artifacts

Download the dogfood-evidence-30997ed artifact from the Actions tab for full screenshots, frames, and walkthrough video.


Generated by Dogfood QA Gate

@HomenShum
Copy link
Copy Markdown
Owner Author

Superseded by CI-compliant branch feat/scratchnode-nodebench-handoff with the same commit; codex/* branch prefix is rejected by the Branch name gate.

@HomenShum HomenShum closed this May 27, 2026
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.

2 participants