Skip to content

visual: motion landing pass (trust surfaces knocked out) + browser-evidence fixes + note-surface-dna - #251

Merged
HomenShum merged 12 commits into
mainfrom
visual/motion-landing
Aug 29, 2026
Merged

visual: motion landing pass (trust surfaces knocked out) + browser-evidence fixes + note-surface-dna#251
HomenShum merged 12 commits into
mainfrom
visual/motion-landing

Conversation

@HomenShum

Copy link
Copy Markdown
Owner

What (stacked on #)

  • Lands demo/plain-words-copy's motion.dev pass with every trust surface knocked out (conflict pane, proposal chip + Approve, lease status, evidence pane, proof section) — motion-ladder rungs named per gesture in the ledger.
  • Fixes the defects the before-capture browser review surfaced: rsPop transform-clobber (L6 card viewport clip), StoryLab full-bleed break, off-token agent accent, dead-end Needs-review chip, NodeBook stub empty state, investigation zero-tiles, graph-rail label/footnote, room-tour + landing brand strings.
  • Merges feat/note-surface-dna (conflict resolved landed-side).
  • Moves motion prims inside the src/motion import boundary (design:audit went red, satisfied by moving code, not editing the gate).
  • Rise degrades to mount-fade without IntersectionObserver (jsdom/old-engine crash fix).

Receipts

🤖 Generated with Claude Code

HomenShum and others added 11 commits July 29, 2026 15:01
…aces

Score-fix-rescore against the node-platform note-surface corpus (three
M2 design rules extracted from an owner-authorized Mew source checkout,
with Evernote/Fabric counterexamples). Receipts validated by
reference-corpus-gate (10 records, 63 citations, exit 0) and committed
under docs/design/note-surface/.

rule-stream-not-chrome (1 -> 3): NoteworthyInbox items and
NotebookDigestWorkbench blocks drop per-entry card chrome (background,
border, radius) for divider-separated stream rows — the treatment the
full-screen notebook detail view already used. Failed/researching/
needs_review state styling is retained: that is trust-surface signaling,
not entry chrome. The digest's review aside stays (patch previews are
proposal/diff trust surfaces) and holds the score at 3, on the record.

rule-single-accent-inline (1 -> 3): the foreign periwinkle #b8c7ff on
typed-block labels becomes var(--accent-ink) — NodeRoom's own terracotta,
never Mew's teal; the accent-tinted index chip on every block goes
achromatic; inbox entity names in the why-panel become the surface's one
inline accent carrier. The oversize inbox popover shadow was not among
the lowest criteria and stays unimproved at 2, honestly.

rule-capture-always-armed (1 -> 3): the ctrl/cmd+K palette now lists
"Capture a thought" first — buildWallCapture creates an empty wall
capture through the CAS spine (no classification question before the
first keystroke), opens the wall, and focuses the new post-it. Honest
absence: rooms without a wall list no dead command; mobile persistent
affordance remains absent and scores 0, unimproved.

Suite: typecheck clean; vitest 2672 passed / 3 failed — the same three
load-dependent flakes as the untouched origin/main baseline (2668/3),
each passing in isolation. Trust-surface selftest PASS before and after;
live gate after: boot-FAILED trust surface PASS, landing NOT_RUN (no
trust surface qualifies there). New scenario suite tests/captureThought
covers empty-text capture, 50-capture burst uniqueness, shared color
cycle, and CAS replay refusal (4/4 passing).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
… springy drill feedback

One-shot transform/opacity motion on the demo-camera surfaces, built on
motion/react (motion@12, already a dependency):

- src/ui/motion/motionPrims.tsx (new): MotionRoot (MotionConfig
  reducedMotion="user" — under prefers-reduced-motion every transform is
  dropped and entrances degrade to opacity-only), Rise (fade+rise entrance,
  mount or whileInView once), Settle (spring settle for committed numbers),
  PressButton (hover/tap scale spring).
- Landing.tsx: hero staggered entrance (eyebrow → h1 → lede → CTA row →
  trust chips, demo panel), feature cards scroll-staggered. Replaces the
  two NodeReveal usages on this surface.
- LandingStory.tsx (#story): hero stagger, proof board + closing CTA
  scroll reveals. StoryStage untouched (sticky canvas — no transform
  ancestors added).
- StoryLab.tsx: the three drill panels reveal on scroll; drill buttons get
  springy hover/tap; conflict/lease/proposal/approved result cards spring
  in; step lists stagger. CSS :active transform removed in favor of the
  spring. All copy, testids, and the literal reason:'locked' /
  semantic_rebase tokens untouched.
- StoryQuickDemo.tsx: variance + note cells spring-settle on commit;
  agent turns rise into the feed.

Verified: tsc clean; noClobberWedge + wedge-drill 3/3; Playwright drive of
all three drills through the motion wrappers passes; reduced-motion run
ends at opacity:1 / transform:none.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Every deletion grep-verified (zero runtime importers), per the 11-agent
surface audit + manual re-verification:
- MobileScreens: dead Room/Coach/ExtractCard screens + their toJSON/
  highlightJSON helpers (~330 loc); MobileChat: unmounted Composer (the
  live path is MobileApp's inline composer); dead scopeTable re-exports;
  ExtractCard-only CSS block in mobile.css
- panels/Artifact.tsx: unmounted Research + ResearchLegacy (renders via
  GenericSheet since the :514 comment; helpers kept — GenericSheet uses them)
- trace: TraceStorybook + LoopRewardPanel + their orphan test (classic
  tested-but-never-constructed; proofloopArtifacts' renderTraceStorybook
  is an unrelated local string renderer and is untouched)
- Chat.tsx: dead coach prop (Coach is a RoomShell mode since the split)
- storyTape.ts: dead Actor/MEMBERS/AGENTS/LandingEvent/EVENT_TAPE exports
- primitives/designSystem: 6 dead exports + their now-orphaned CSS blocks
- styles.css: 6 zero-consumer namespaces (r-excel-*, r-sidebar-*,
  r-activity-*, r-pill-auto, r-feature, r-beat-desc)
- LeftRail: {false && ...} dead JSX (dup binder-review-queue testid) +
  voided sub helper
- stale-comment hygiene (ExcelGridSheet references), .gitignore dedupe,
  archived the obsolete kimi handoff (targets a component deleted in d022d42)

Test-floor repairs landed with measurements:
- githubActionsRuntimePins: expected ref updated for the node-platform ->
  NodeKit repo rename (5de0508); same immutable SHA pin
- proofloop longrun/dogfood tests: root cause was re-parsing a grown ~15MB
  .proofloop longrun state.json per plan build (2.54s measured); readJson
  now memoized by path+mtime; per-file timeout 5s -> 30s with the numbers
  in-file
- nodebookWorkspaceProjection: 60s -> 180s with cold/warm measurements
  (70.95s cold transform of six lazy renderer plugins, ~7s warm)

NOT deleted (kept-legacy, documented): split-pane kind-tab strip (e2e-pinned),
legacy Note editor (docs/STACK.md:13), agent-operation-stream fallback (live
safety net), notebook envelope lane (needs a wire-or-collapse decision),
initials() 4x dedup REFUTED (implementations differ on separators/single names).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- restore commit/createElement/deleteElement CAS helpers (ResearchLegacy
  ends 15 lines earlier than the audit's range; the splice swallowed them)
- restore ExtractCard + toJSON/highlightJSON + extract CSS: audit's
  zero-consumer claim REFUTED — SampleCapture renders it (MobileScreens:221)
- drop freshnessLabel/freshnessClass (only Research used them), orphaned
  scopeTable fn + ScopeLane type in MobileSheets, unused MobileChat imports
- tests: the vi.setConfig insertion had silently failed; now actually applied

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…face

Rungs named (motion-ladder):
- Rung 3 (reviewed recipe, motionPrims.tsx): hero staggered Rise entrances,
  panel Rise-in-view reveals, Settle spring on a just-committed cell value,
  PressButton hover/tap springs on drill run/reset, chat-turn + step-log
  arrivals. Rung 2 is insufficient only where spring physics or shared
  viewport-once choreography is the point; motion@12.42.2 was already a
  main dependency — no new library decision.
- Reduced motion: MotionConfig reducedMotion="user" — transforms drop,
  entrances collapse to fades of the same design (lane evidence:
  after-reduced-motion-story.png, re-verified in this pass).

Knocked out (NO MOTION on believe/approve surfaces, regardless of rung):
- .sl-conflict verdict pane, .sl-lease hold status, .sl-chip rebase
  proposal (its Approve is a plain button again), .sl-evi approved
  evidence, and the rs-proof-section Rise — a proposal may animate in
  elsewhere; the surface carrying the decision may not.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Browser-review findings fixed (before/after in .qa/evidence/20260829-ui-endtoend):
- landingStory floats: rsPop keyframes end at transform:none and were clobbering
  placement transforms (one-owner violation) — the L6 resolution card clipped the
  1440 viewport because its translateX(-50%) died at animation end. Placement now
  uses the independent translate property. -tr floats sit above the card instead
  of on the sheet header.
- StoryLab try-it-live panels: constrained to the shared 760px column (were
  full-bleed after the first drill card).
- story hero: agents highlight retokened #8C92E0 indigo -> #D97757 terracotta
  (agent provenance token; purple stays presence-only).
- chat agent receipts: the amber Needs-review chip is now the review affordance
  (button opening the artifact at the cell) instead of a status span beside one.
- investigation tiles: an unrun verifier renders em dash, a measured zero stays 0.
- live graph rail: element labels humanized (raw r_* ids no longer leak),
  footnote bumped to a legible token size.
- NodeBook tab: honest empty state when the room has zero visual artifacts —
  the vendored surface was rendering three panes of the same text list.
- landing story-tape rail: scratchnode.live -> noderoom.live, inert Previous
  arrow removed; room-tour brand strings NodeAgent -> NodeRoom (copy only).

Refuted own findings (Browser-pane input artifacts, probes green in Playwright):
Enter-to-commit works; the +N overflow menu opens with all items.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…dit polices

StoryLab/StoryQuickDemo no longer import motion/react directly — feed/log
arrivals go through a named Arrive prim (one vocabulary, one boundary).
design:audit green (was 3 findings).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…al/motion-landing

# Conflicts:
#	src/ui/workArtifacts/work-artifacts.css
…er; repoint line-pinned citations; idle verifier tiles read em dash

- motion whileInView threw an uncaught IntersectionObserver ReferenceError in
  jsdom and unmounted the entire App tree (roomFullNoFlash went red); the guard
  lives in the shared prim so every caller is covered, and old engines get the
  same content with a mount fade instead of a scroll reveal.
- .tours + START_HERE citations repointed after Chat.tsx/Landing.tsx line
  shifts (the checkable-citations gate caught the drift).
- investigationSurface idle-case expectation updated 0 -> em dash to match the
  unrun-verifier-is-not-a-measured-zero change (completed-run zeros still
  assert as numbers).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@vercel

vercel Bot commented Aug 29, 2026

Copy link
Copy Markdown

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

Project Deployment Actions Updated (UTC)
noderoom Ready Ready Preview Aug 29, 2026 9:19pm

Request Review

@github-actions

github-actions Bot commented Aug 29, 2026

Copy link
Copy Markdown

Scaffold Handoff — For Your Coding Agent

Your coding agent (Codex, Claude Code, etc.) should apply the accepted
scaffold proposals below. Do NOT touch any immutable files.

Immutability Check

Mode: advisory

✅ No immutable files were modified in this branch.

Changed Files

  • .gitignore
  • .qa/archive/HANDOFF-kimi-aitab-demo.md
  • .qa/evidence/20260718-nodeslide-thread/00-boot.png
  • .qa/evidence/20260718-nodeslide-thread/01-workspace.png
  • .qa/evidence/20260718-nodeslide-thread/02-ai-tab-initial.png
  • .qa/evidence/20260718-nodeslide-thread/03-thread-working.png
  • .qa/evidence/20260718-nodeslide-thread/04-thread-outcome.png
  • .qa/evidence/20260718-nodeslide-thread/05-accepted.png
  • .qa/evidence/20260718-nodeslide-thread/discover.mjs
  • .qa/evidence/20260718-nodeslide-thread/drive-record.mjs
  • .qa/evidence/20260718-nodeslide-thread/page@22a212a22da6259d287bb242b00fe2aa.webm
  • .qa/evidence/20260718-nodeslide-thread/raw-demo.webm
  • .qa/evidence/20260829-ui-endtoend/after-local-wave2/memory-room-trace.png
  • .qa/evidence/20260829-ui-endtoend/after-local-wave2/memory-room.png
  • .qa/evidence/20260829-ui-endtoend/after-local-wave2/notes.json
  • .qa/evidence/20260829-ui-endtoend/after-local-wave2/story.png
  • .qa/evidence/20260829-ui-endtoend/after-local-wave2/story.seg1.png
  • .qa/evidence/20260829-ui-endtoend/after-local-wave2/story.seg2.png
  • .qa/evidence/20260829-ui-endtoend/after-local-wave2/story.seg3.png
  • .qa/evidence/20260829-ui-endtoend/after-local-wave2/story.seg4.png
  • .qa/evidence/20260829-ui-endtoend/after-local-wave2/story.seg5.png
  • .qa/evidence/20260829-ui-endtoend/after-local-wave2/story.seg6.png
  • .qa/evidence/20260829-ui-endtoend/after-local-wave2/story.seg7.png
  • .qa/evidence/20260829-ui-endtoend/after-local-wave2/story.seg8.png
  • .qa/evidence/20260829-ui-endtoend/after-local/enter-commit.png
  • .qa/evidence/20260829-ui-endtoend/after-local/nodebook-tab.png
  • .qa/evidence/20260829-ui-endtoend/after-local/notes.json
  • .qa/evidence/20260829-ui-endtoend/after-local/overflow-menu.png
  • .qa/evidence/20260829-ui-endtoend/after-local/story.png
  • .qa/evidence/20260829-ui-endtoend/after-local/story.seg1.png
  • .qa/evidence/20260829-ui-endtoend/after-local/story.seg2.png
  • .qa/evidence/20260829-ui-endtoend/after-local/story.seg3.png
  • .qa/evidence/20260829-ui-endtoend/after-local/story.seg4.png
  • .qa/evidence/20260829-ui-endtoend/after-local/story.seg5.png
  • .qa/evidence/20260829-ui-endtoend/after-local/story.seg6.png
  • .qa/evidence/20260829-ui-endtoend/after-local/story.seg7.png
  • .qa/evidence/20260829-ui-endtoend/after-local/story.seg8.png
  • .qa/evidence/20260829-ui-endtoend/before-live/landing.png
  • .qa/evidence/20260829-ui-endtoend/before-live/memory-room-trace.png
  • .qa/evidence/20260829-ui-endtoend/before-live/memory-room.png
  • .qa/evidence/20260829-ui-endtoend/before-live/mobile.png
  • .qa/evidence/20260829-ui-endtoend/before-live/notes.json
  • .qa/evidence/20260829-ui-endtoend/before-live/room-tour.png
  • .qa/evidence/20260829-ui-endtoend/before-live/story.png
  • .qa/evidence/20260829-ui-endtoend/before-live/story.seg1.png
  • .qa/evidence/20260829-ui-endtoend/before-live/story.seg2.png
  • .qa/evidence/20260829-ui-endtoend/before-live/story.seg3.png
  • .qa/evidence/20260829-ui-endtoend/before-live/story.seg4.png
  • .qa/evidence/20260829-ui-endtoend/before-live/story.seg5.png
  • .qa/evidence/20260829-ui-endtoend/before-live/story.seg6.png
  • .qa/evidence/20260829-ui-endtoend/before-live/story.seg7.png
  • .qa/evidence/20260829-ui-endtoend/before-live/story.seg8.png
  • .qa/evidence/20260829-ui-endtoend/capture.mjs
  • .qa/evidence/20260829-ui-endtoend/live-verify.mjs
  • .qa/evidence/20260829-ui-endtoend/motion-lane-inherited/after-landing.png
  • .qa/evidence/20260829-ui-endtoend/motion-lane-inherited/after-lease-drill.png
  • .qa/evidence/20260829-ui-endtoend/motion-lane-inherited/after-memory-landing.png
  • .qa/evidence/20260829-ui-endtoend/motion-lane-inherited/after-rebase-drill.png
  • .qa/evidence/20260829-ui-endtoend/motion-lane-inherited/after-reduced-motion-story.png
  • .qa/evidence/20260829-ui-endtoend/motion-lane-inherited/after-story.png
  • .qa/evidence/20260829-ui-endtoend/motion-lane-inherited/after2-story.png
  • .qa/evidence/20260829-ui-endtoend/motion-lane-inherited/after2-storylab.png
  • .qa/evidence/20260829-ui-endtoend/motion-lane-inherited/before-landing.png
  • .qa/evidence/20260829-ui-endtoend/motion-lane-inherited/before-story.png
  • .qa/evidence/20260829-ui-endtoend/motion-lane-inherited/passive-intelligence-visual-check.png
  • .qa/evidence/20260829-ui-endtoend/perf-probe.mjs
  • .qa/evidence/20260829-ui-endtoend/probe-out/enter-commit.png
  • .qa/evidence/20260829-ui-endtoend/probe-out/nodebook-tab.png
  • .qa/evidence/20260829-ui-endtoend/probe-out/overflow-menu.png
  • .qa/evidence/20260829-ui-endtoend/probe-room.mjs
  • .tours/01-primary-user-flow.tour
  • .tours/03-debug-and-recovery.tour
  • docs/CHANGELOG.md
  • docs/START_HERE.md
  • docs/design/note-surface/noderoom-capture-always-armed.after.score-receipt.json
  • docs/design/note-surface/noderoom-capture-always-armed.before.score-receipt.json
  • docs/design/note-surface/noderoom-single-accent-inline.after.score-receipt.json
  • docs/design/note-surface/noderoom-single-accent-inline.before.score-receipt.json
  • docs/design/note-surface/noderoom-stream-not-chrome.after.score-receipt.json
  • docs/design/note-surface/noderoom-stream-not-chrome.before.score-receipt.json
  • docs/eval/OFFICIAL_BENCHMARK_READINESS.md
  • docs/eval/OFFICIAL_BENCHMARK_TASK_COVERAGE.md
  • docs/eval/OPENROUTER_CONVEX_BENCHMARK.md
  • docs/eval/agent-improvement-loop.md
  • docs/eval/agent-improvement-loop.svg
  • docs/eval/agent-improvement-loop/20260829T211803Z.json
  • docs/eval/agent-improvement-loop/latest.json
  • docs/eval/agent-workspace-sandbox-smoke.json
  • docs/eval/algorithm-artifact-smoke.json
  • docs/eval/bankertoolbench-official-contract.json
  • docs/eval/docker-sandbox-probe.json
  • docs/eval/eval-runs.jsonl
  • docs/eval/halo-convex-context-telemetry.json
  • docs/eval/halo-self-improvement-smoke.json
  • docs/eval/halo-variant-selection.json
  • docs/eval/official-benchmark-readiness.json
  • docs/eval/official-benchmark-task-coverage.json
  • docs/eval/openrouter-convex-benchmark.json
  • docs/eval/professional-catalog-proofs.json
  • docs/eval/professional-proof-ledger.json
  • docs/eval/spreadsheetbench-chart-visual-probe.json
  • docs/eval/traces/credit/20260829T211812637Z-a76ef876_dirty.33cb9dbbf676b2fd/cascade-healthy.json
  • docs/eval/traces/credit/20260829T211812637Z-a76ef876_dirty.33cb9dbbf676b2fd/delta-incomplete.json
  • docs/eval/traces/credit/20260829T211812637Z-a76ef876_dirty.33cb9dbbf676b2fd/mapping-correct.json
  • docs/eval/traces/credit/20260829T211812637Z-a76ef876_dirty.33cb9dbbf676b2fd/mapping-misbind.json
  • docs/eval/traces/credit/20260829T211812637Z-a76ef876_dirty.33cb9dbbf676b2fd/summit-stressed.json
  • docs/eval/traces/ladder/20260829T211812158Z-a76ef876_dirty.6eb7b788a91220dd/ladder_L1_read_scripted.json
  • docs/eval/traces/ladder/20260829T211812158Z-a76ef876_dirty.6eb7b788a91220dd/ladder_L2_edit_scripted.json
  • docs/eval/traces/ladder/20260829T211812158Z-a76ef876_dirty.6eb7b788a91220dd/ladder_L3_conflict_scripted.json
  • docs/eval/traces/ladder/20260829T211812158Z-a76ef876_dirty.6eb7b788a91220dd/ladder_L4_blocked_scripted.json
  • docs/eval/traces/ladder/20260829T211812158Z-a76ef876_dirty.6eb7b788a91220dd/ladder_L5_large_range_scripted.json
  • docs/eval/traces/ladder/20260829T211812158Z-a76ef876_dirty.6eb7b788a91220dd/ladder_L6_long_horizon_scripted.json
  • docs/eval/traces/ladder/20260829T211812158Z-a76ef876_dirty.6eb7b788a91220dd/ladder_L7_resume_scripted.json
  • package-lock.json
  • skills/probe-first/AGENTS.md
  • skills/probe-first/LICENSE
  • skills/probe-first/README.md
  • skills/probe-first/SKILL.md
  • skills/probe-first/references/DOSSIER.md
  • skills/probe-first/references/STORE.md
  • src/app/styles.css
  • src/eval/proofloopProdProxyLongRun.ts
  • src/landing/LandingStory.tsx
  • src/landing/SpreadsheetScene.tsx
  • src/landing/StoryLab.tsx
  • src/landing/StoryQuickDemo.tsx
  • src/landing/landingStory.css
  • src/landing/roomTour/RoomTour.tsx
  • src/landing/roomTour/RoomTourFlows.tsx
  • src/landing/roomTour/roomTourData.ts
  • src/landing/storyTape.ts
  • src/motion/motionPrims.tsx
  • src/notebook/NodeBookWorkspaceSurface.tsx
  • src/ui/Chat.tsx
  • src/ui/Landing.tsx
  • src/ui/LeftRail.tsx
  • src/ui/RoomShell.tsx
  • src/ui/graph/LiveGraphRail.tsx
  • src/ui/investigation/InvestigationReport.tsx
  • src/ui/mobile/MobileChat.tsx
  • src/ui/mobile/MobileScreens.tsx
  • src/ui/mobile/MobileSheets.tsx
  • src/ui/mobile/mobile.css
  • src/ui/overlay/spreadsheetResolver.ts
  • src/ui/panels/Artifact.tsx
  • src/ui/primitives/designSystem.tsx
  • src/ui/primitives/primitives.css
  • src/ui/trace/LoopRewardPanel.tsx
  • src/ui/trace/TraceStorybook.tsx
  • src/ui/traceLens/surfaces.ts
  • tests/captureThought.test.ts
  • tests/githubActionsRuntimePins.test.ts
  • tests/investigationSurface.test.tsx
  • tests/loopContractsAndPanels.test.tsx
  • tests/mobileLiveHonesty.test.tsx
  • tests/nodebookWorkspaceProjection.test.tsx
  • tests/proofloopProdProxyLongRun.test.ts
  • tests/proofloopStandaloneRunnerDogfood.test.ts

Needs Adversarial Review — Do NOT Apply Yet

These proposals passed the reject check but have not been approved by
an adversarial reviewer. A human or frozen LLM judge must approve them first.

  • scaf-001 (AGENTS.md): Add explicit instruction for step spreadsheetbench-runner-fixture: Step spreadsheetbench-runner-fixture failed — scaffold may need explicit instruction or evidence assertion.
  • scaf-002 (AGENTS.md): Add explicit instruction for step convex-boundaries: Step convex-boundaries failed — scaffold may need explicit instruction or evidence assertion.

Safety Boundary

Agent may improve the scaffold.
Agent may NOT weaken the proof gate.

Immutable files (never modify):

  • scripts/proofloop.mjs
  • scripts/agent-improvement-loop.ts
  • tests/harnessChangeEval.test.ts
  • .github/workflows/
  • src/eval/evalTrustPolicy.ts
  • src/eval/architectureBudget.ts
  • evals/evalStore.ts

Scaffold files (safe to modify):

  • AGENTS.md
  • CLAUDE.md
  • proofloop/scenarios/*.yaml
  • proofloop/rubrics/*.yaml
  • proofloop/subagents/*.md
  • proofloop/adapters/*.js
  • .proofloop/memory.jsonl
  • src/nodeagent/models/prompts/systemPrompt.ts

npm audit clean; the mermaid render path (nodebookWorkspaceProjection, 5 tests)
re-run green against the bumped sanitizer.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@HomenShum
HomenShum merged commit db0b165 into main Aug 29, 2026
8 of 13 checks passed
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