feat(brand,ui): Tangle logotype spine + 10/10 surface pass + engine bumps#141
Conversation
…ime 0.76, integrations 0.44, sandbox-ui 0.44) agent-integrations 0.44 loosened IntegrationConnection.connectorId to optional; mirror that in StudioIntegrationConnection and guard the membership check so an undefined connectorId simply never matches.
…cker popover The Konva canvas host and the timeline clip/ruler/lane drive pan, marquee, trim and scrub through Pointer Events but set no touch-action, so on a touchscreen the browser's native scroll/pinch fought every gesture. Set touch-action:none on each gesture surface. Also clamp the model/effort picker popover (w-[420px]) with max-w so it stops overflowing phones <420px.
Captures the missing product-clarity layer the browser audit flagged (product-clarity 2-4/10 across Chat/Canvas/Timeline while a11y scored 10/10): per-surface purpose, user goal, the first impression we want, what makes it feel intuitive, and naming proposals at the product-label level.
tangletools
left a comment
There was a problem hiding this comment.
✅ Auto-approved PR — 91781ef5
Blanket team auto-approval is enabled for this reviewer service.
The full PR reviewer audit still runs separately and will publish findings if it detects issues.
tangletools · auto-approval · reason: blanket_auto_approve · 2026-06-24T08:48:23Z
…ubpath New ./brand export ships the canonical Tangle mark (the same SVG the sandbox product uses) as inline-SVG Logo + TangleKnot + a BrandHeader app shell. Vendored rather than re-exported from sandbox-ui: that path drags a heavy peer chain (@tangle-network/ui -> @tangle-network/brand -> @nanostores/*) a dependency-light shell must not require to render its own logo. The knot keeps the brand gradient; the wordmark paints with currentColor so it adapts to light/dark. web-react reaches the mark through a lazy boundary so it stays import-clean without the peer. Playground header now shows the logo; nav reads Design / Storyboard / Agent.
…ing, responsive Chat: the approve moment is now a prominent decision card — filled brand 'Approve & run' vs quiet 'Reject', with a plain-English preview of what the proposal does; command/ proposal/follow-up/alert blocks are visually distinct; 'Effort' -> 'Thinking' (Quick/Standard/Extended); branded first-run state; AA-compliant warning label. Canvas: empty state (template/manual/ask), toolbar hierarchy, 'Pages' label, renames (PRESET->Page size, etc.), phone gate. Timeline: ruler+labeled lanes+playhead legible at rest, transport-vs-edit hierarchy, zoom readout, empty state, renames. All renames ship as overridable label-prop defaults; every existing prop/export preserved.
tangletools
left a comment
There was a problem hiding this comment.
✅ Auto-approved PR — 3dee9e6c
Blanket team auto-approval is enabled for this reviewer service.
The full PR reviewer audit still runs separately and will publish findings if it detects issues.
tangletools · auto-approval · reason: blanket_auto_approve · 2026-06-24T09:41:21Z
Completes the naming pass the rate-limited canvas agent left half-applied: the clearer label ships as the new default (still overridable via pageSizeLabel). Updates the two toolbar tests that asserted the old wording.
tangletools
left a comment
There was a problem hiding this comment.
✅ Auto-approved PR — f5cd55d2
Blanket team auto-approval is enabled for this reviewer service.
The full PR reviewer audit still runs separately and will publish findings if it detects issues.
tangletools · auto-approval · reason: blanket_auto_approve · 2026-06-24T10:38:50Z
Takes agent-app's UI from "mechanically strong, product-clarity weak" toward a designed, on-brand product shell — plus the engine bumps. All gates green: typecheck, 1911 tests, build. Built via a parallel multi-agent workflow (brand foundation → 3 surfaces in disjoint dirs → verify), then hand-integrated and fixed.
Brand spine (new
./brand)The canonical Tangle logotype — the same SVG the sandbox product ships — vendored as dependency-free inline
Logo+TangleKnot+ aBrandHeadershell. Vendored, not re-exported from sandbox-ui, because that path drags a heavy peer chain (@tangle-network/ui → @tangle-network/brand → @nanostores/*) a dependency-light shell must not require to render its own logo. Knot keeps the brand gradient; wordmark usescurrentColor(light/dark adaptive). Logo renders in the playground header + every surface; nav reads Design / Storyboard / Agent.Surface pass (no capability removed — renames are overridable prop defaults)
Engine bumps + mobile (earlier commits)
agent-eval 0.99, agent-runtime 0.76, integrations 0.44, sandbox-ui 0.44; studio connectorId type fix. touch-action:none on canvas/timeline; picker popover max-w clamp.
Verification
typecheck clean · 117 files / 1911 tests · build emits ESM + d.ts incl. dist/brand (zero sandbox-ui/nanostores imports). Live browser screenshots confirm logo + approval card + canvas VIEW/PAGES + timeline ruler/lanes. The single-run LLM design-audit score is noisy and not used as the before/after metric — screenshots are the ground truth; the critical findings (Approve=Reject, no time grid, no lanes, blank canvas) are resolved.
Merging triggers the auto-publish patch release.