Skip to content

Seed v3 Colophon design system for OpenClaw Windows Hub - #1395

Draft
karkarl wants to merge 7 commits into
mainfrom
karkarl-seed-design-system-v3
Draft

Seed v3 Colophon design system for OpenClaw Windows Hub#1395
karkarl wants to merge 7 commits into
mainfrom
karkarl-seed-design-system-v3

Conversation

@karkarl

@karkarl karkarl commented Sep 10, 2026

Copy link
Copy Markdown
Collaborator

Summary

Seeds a fresh v3-schema Colophon design system into .agents/design/ for the OpenClaw Windows Hub app, carrying over the design decisions from the earlier v1 seed (PR #962, closed/unmerged) and re-expressing the component patterns in the updated v3 schema. Branches off main.

This PR is design-system seeding only. It adds .agents/design/* and the idempotent Colophon pointer block in repo-root AGENTS.md. No application code, tests, or build files are modified.

What's here

  • design.json — carried over from the v1 seed (tokens format is unchanged in v3): Fluent color tokens (each with its resource ThemeResource key + light/dark/highContrast themes), authority port targets, brand, typography, spacing, radii, shadows, principles. Preview hex is preview-only; shipping code binds the Fluent resource keys. Now carries 15 color tokens (12 from the v1 seed + control / controlLine / accentSubtle for inputs/chat) and a WinAppCli entry in the port authority (see below).
  • principles.md — carried over verbatim from the v1 seed.
  • components.jsonc — all 9 components rewritten to v3 (meta.version: 3): Button, Field, Card, Badge, ComposerPicker, ChatBubble, ChatComposer, ChatThread, ExampleScreen. Every raw-CSS attrs.style string is replaced with semantic, token-bound layout / position / appearance. Every object node has a stable unique id. WinUI-provenance and Reactor-port notes are preserved; ExampleScreen uses a v3 freeform status board to exercise absolute positioning alongside Auto Layout.
  • colophon.jsonc — new v3 presentation profile (schemaVersion: 1, extends: "colophon/default") mapping OpenClaw tokens to theme roles for light + dark, brand, navigation, and component template config.
  • AGENTS.md — idempotent Colophon pointer block; em dashes removed so the repo doc validator (no em dashes in user-facing docs) passes.

Chat components reconciled to the shipping Reactor UI (design data only)

The chat entries in components.jsonc describe what the app actually ships today, so the design stays in sync with the implementation:

  • ComposerPicker — the subtle inline dropdown the composer's session / model / reasoning selectors use: borderless, transparent resting fill (SubtleFillColorTransparent), hover subtleHover / press subtlePressed, muted value text with a trailing muted chevron, sm radius, gap/padding tokens 1/2. Opens a flyout of single-select options in-app (Reactor port note).
  • ChatComposer — toolbar matches the implemented layout (session picker + Attach/Model/Reasoning/Voice/Speaker/Settings/Send), container binds control / controlLine with a 12px margin; note documents the Send↔Stop toggle.
  • ChatThread / ChatBubble — user bubble uses the softer accentSubtle with a hover Copy; assistant bubble uses subtleHover fill + controlLine border with a Read-aloud footer and max-width 720.
  • 3 new tokens the system didn't previously cover (preview hex are approximations; shipping code binds the resource keys): controlControlFillColorDefaultBrush, controlLineControlStrokeColorDefaultBrush, accentSubtleAccentFillColorSecondaryBrush.

WinAppCli in the port authority (design data)

Per the maintainer, XAML and Reactor now build/package through winapp (WinAppCli, https://github.com/microsoft/WinAppCli). design.json's authority gains a tooling descriptor and a toolingSource on the default WinUI 3 port and the Reactor chat override. This is design-system metadata about how the design ports to code; it changes no code. The design→code syncSource references (win-dev-skills / microsoft-ui-reactor) are unchanged.

px → token approximations (worth a human eye)

Raw WinUI pixel padding snapped to the nearest 4px token, each recorded in the component note: Button ButtonPadding 11,5,11,6 → 3/1 (MinWidth 100 = port note); Field TextControlThemePadding 10,5,6,6 → 2/1 (MinHeight 32 = port note); Card 16,12 → 4/3 (exact). Chat bubble/composer max-width/min-height growth values have no token equivalent and remain Reactor port notes. The 3 input/chat tokens' preview hex are approximations of the real Fluent brushes; shipping code binds the resource keys, so the hex is preview-only.

Required proof pools

none — this PR only adds framework-agnostic design-system data files under .agents/design/ plus the AGENTS.md pointer. No shipping UI, MCP, node, setup, pairing, or gateway code changes, so the app-behavior proof pools in docs/PROOF_POOLS.md don't apply.

Validation

Validated against the Colophon extension's own read-only validators (componentsio.mjs, profileio.mjs, validate.mjs):

  • components.jsonc parses at meta.version: 3; validateComponentsDoc(doc, { tokens }) passes (all appearance token refs, including the 3 new tokens, resolve against design.json); all 9 components expandInstance successfully; guard confirms no raw "style" attrs remain.
  • colophon.jsonc $schema matches PROFILE_SCHEMA_URL; validatePresentationProfile passes.
  • Aggregate validateDesignDir('.agents/design')ok: true, 0 errors, 0 warnings.
  • Against the main merge-base, this branch changes only .agents/design/* and AGENTS.md (verified via git diff --stat). No C#, test, or build files are touched, so repo build/test suites are not applicable to this change.

Real behavior proof

The design system renders in the Colophon canvas from these files; the extension validators above exercise the same parse/validate/expand path the canvas uses. No runtime app behavior changes in this PR.

Co-authored-by: Copilot App 223556219+Copilot@users.noreply.github.com

Carry over the v1 design.json tokens/brand/authority and principles.md verbatim, port all 9 components (Button, Field, Card, Badge, ComposerPicker, ChatBubble, ChatComposer, ChatThread, ExampleScreen) from raw-CSS attrs.style to v3 Auto Layout with token-bound layout/appearance, and add a v3 colophon.jsonc presentation profile. Adds the idempotent Colophon pointer block to AGENTS.md.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
@clawsweeper

clawsweeper Bot commented Sep 10, 2026

Copy link
Copy Markdown

🦞👀
ClawSweeper picked this up.

Pull request received. I will update this pull request when review starts.

ClawSweeper review complete

ClawSweeper finished reviewing this revision. The review result is being finalized.

View the workflow run.

@clawsweeper clawsweeper Bot added P3 Low-risk cleanup, docs, polish, ergonomics, or speculative feature. rating: 🦐 gold shrimp Decent PR readiness signal, but merge confidence is limited. status: ⏳ waiting on author ClawSweeper has contributor-facing work open and is waiting for author action. labels Sep 10, 2026
@clawsweeper

clawsweeper Bot commented Sep 10, 2026

Copy link
Copy Markdown

Codex review: needs changes before merge. Reviewed September 11, 2026, 2:08 PM ET / 18:08 UTC (Revision 8).

ClawSweeper review

What this changes

Adds Fluent design tokens, nine Colophon component previews, design principles, a presentation profile, and agent guidance for translating designs into native Windows UI.

Merge readiness

Needs changes before merge - 5 items remain

This seed is not on current main and remains a useful contribution. All four prior findings remain unresolved; the latest button-class changes do not address them.

Priority: P3
Reviewed head: ada5a629f923c5e2734c4414691fa8241aa833d7

Review scores

Measure Result What it means
Overall readiness 🦐 gold shrimp (3/6) The focused seed is useful, but unsupported profile configuration and inaccurate guidance prevent it from being ready to merge.
Proof confidence 🌊 off-meta tidepool Not applicable: This collaborator-authored design-only PR has no changed native runtime behavior or authorization boundary requiring the contributor proof gate. The inspected predecessor screenshots provide historical context; claimed profile validation is addressed as a concrete contract finding.
Patch quality 🦐 gold shrimp (3/6) 4 actionable review findings remain.

Verification

Check Result Evidence
Real behavior Not applicable Not applicable: This collaborator-authored design-only PR has no changed native runtime behavior or authorization boundary requiring the contributor proof gate. The inspected predecessor screenshots provide historical context; claimed profile validation is addressed as a concrete contract finding.
Evidence reviewed 9 items Introduced scope and review continuity: The pinned merge-base-to-head delta contains five design/guidance files and 1,393 additions, with no application or test changes. Raw comparison against the previous reviewed head changes only components.jsonc; the other three design files containing the prior findings are unchanged. A full historical component diff encountered an unavailable-object fetch failure, so continuity claims use the verified raw file comparison.
Explicit Colophon dependency: The added profile names karkarl/colophon's schema, and the captured PR body claims validation through profileio.mjs and validatePresentationProfile. These establish a direct dependency on Colophon's actual consumer contract.
Presentation-profile contract is unavailable: GitHub verified the repository identity and default branch revision. Its recursive tree contains neither colophon.schema.json nor profileio.mjs. The inspected loadDesign implementation reads design.json, components.jsonc and principles.md; validateDesignDir aggregates tokens and components without reading colophon.jsonc. Component validation does support v3 layouts, so the unsupported part is the presentation profile.
Findings 4 actionable findings [P2] Use an available Colophon presentation-profile contract
[P2] Describe WinAppCLI as the optional launcher it currently is
[P3] Replace references to the nonexistent JSX catalog
Security None None.

How this fits together

The design catalog supplies visual examples and guidance to Colophon and coding agents. Windows UI still ships through the native WinUI and Reactor implementations, with Fluent resources providing theme-aware colors.

flowchart LR
  A[Shipping Windows UI] --> B[Design tokens and patterns]
  B --> C[Colophon preview]
  B --> D[Agent design guidance]
  E[Presentation profile] --> F[Missing profile consumer]
  D --> G[Native UI implementation]
Loading

Before merge

  • Use an available Colophon presentation-profile contract (P2) - This prior finding remains unresolved. At the referenced repository's current revision d11571af3a9d0537e2ce6d171e8418da31b6bd4d, neither this schema nor profileio.mjs exists, and loadDesign and validateDesignDir never read colophon.jsonc. Consequently these theme, navigation and template settings have no effect. Remove the unsupported profile and its validation claims, or identify an available consumer revision that implements them.
  • Describe WinAppCLI as the optional launcher it currently is (P2) - The sole-build-tool assertion still conflicts with build.ps1, which runs dotnet build, and CI, which publishes with dotnet/MSBuild. run-app-local.ps1 uses winapp only when -UseWinApp is supplied. Because AGENTS.md now directs UI workers to this metadata, the statement sends them toward an unsupported build workflow. Describe the existing optional launcher role and correct the corresponding PR-body claim.
  • Replace references to the nonexistent JSX catalog (P3) - This prior finding remains: the principles and design.json metadata direct agents to React in components.jsx, but the branch provides only the JSONC component tree. Replace both references with components.jsonc and describe its declarative format so readers can find and edit the actual catalog.
  • Remove prohibited em dashes from the new agent-facing prose (P3) - The root pointer was corrected, but the new principles, token descriptions and component notes still contain em dashes. These are explicitly presented as instructions and preview copy for agents and designers, so the repository's user-facing-copy rule applies. Replace them throughout the added prose while preserving the design meaning.
  • Complete next step (P2) - Resolve the unsupported profile, correct the WinAppCLI description and JSONC references, and remove prohibited punctuation from the new agent-facing prose.

Findings

  • [P2] Use an available Colophon presentation-profile contract — .agents/design/colophon.jsonc:2-4
  • [P2] Describe WinAppCLI as the optional launcher it currently is — .agents/design/design.json:12-15
  • [P3] Replace references to the nonexistent JSX catalog — .agents/design/principles.md:8-10
Agent review details

Security

None.

Review metrics

Metric Value Why it matters
Design catalog scope 9 component previews, 15 color tokens, 5 files The substantial catalog remains confined to design data and agent guidance.
Production and test delta Application production +0, tests +0, design/guidance +1,393 The additions seed design references without growing the shipped application implementation.

Technical review

Best possible solution:

Keep the seed aligned with shipping Fluent behavior, use only supported Colophon inputs, and describe the existing build and launch workflow accurately.

Do we have a high-confidence way to reproduce the issue?

Yes, through source inspection: the profile has no consumer in the referenced dependency, and the build-tool and catalog descriptions contradict existing files. No runtime reproduction was executed.

Is this the best way to solve the issue?

Not yet. A native-derived catalog is a reasonable approach, but unsupported profile settings and inaccurate agent guidance should be corrected within this design-only scope.

Full review comments:

  • [P2] Use an available Colophon presentation-profile contract — .agents/design/colophon.jsonc:2-4
    This prior finding remains unresolved. At the referenced repository's current revision d11571af3a9d0537e2ce6d171e8418da31b6bd4d, neither this schema nor profileio.mjs exists, and loadDesign and validateDesignDir never read colophon.jsonc. Consequently these theme, navigation and template settings have no effect. Remove the unsupported profile and its validation claims, or identify an available consumer revision that implements them.
    Confidence: 0.99
  • [P2] Describe WinAppCLI as the optional launcher it currently is — .agents/design/design.json:12-15
    The sole-build-tool assertion still conflicts with build.ps1, which runs dotnet build, and CI, which publishes with dotnet/MSBuild. run-app-local.ps1 uses winapp only when -UseWinApp is supplied. Because AGENTS.md now directs UI workers to this metadata, the statement sends them toward an unsupported build workflow. Describe the existing optional launcher role and correct the corresponding PR-body claim.
    Confidence: 0.99
  • [P3] Replace references to the nonexistent JSX catalog — .agents/design/principles.md:8-10
    This prior finding remains: the principles and design.json metadata direct agents to React in components.jsx, but the branch provides only the JSONC component tree. Replace both references with components.jsonc and describe its declarative format so readers can find and edit the actual catalog.
    Confidence: 0.99
  • [P3] Remove prohibited em dashes from the new agent-facing prose — .agents/design/principles.md:17-20
    The root pointer was corrected, but the new principles, token descriptions and component notes still contain em dashes. These are explicitly presented as instructions and preview copy for agents and designers, so the repository's user-facing-copy rule applies. Replace them throughout the added prose while preserving the design meaning.
    Confidence: 0.98

Overall correctness: patch is incorrect
Overall confidence: 0.97

AGENTS.md: found and applied where relevant.

Codex review notes: model internal, reasoning medium; reviewed against c71121cdcdc9.

Labels

Label justifications:

  • P3: This is design-tooling and documentation work with no introduced shipping runtime change.
  • rating: 🦐 gold shrimp: Overall readiness is 🦐 gold shrimp; proof is 🌊 off-meta tidepool and patch quality is 🦐 gold shrimp.
  • status: ⏳ waiting on author: ClawSweeper has contributor-facing work open and is waiting for author action. Not applicable: This collaborator-authored design-only PR has no changed native runtime behavior or authorization boundary requiring the contributor proof gate. The inspected predecessor screenshots provide historical context; claimed profile validation is addressed as a concrete contract finding.

Evidence

Acceptance criteria:

  • [P1] git diff --check.
  • [P1] ./build.ps1.
  • [P1] dotnet test ./tests/OpenClaw.Shared.Tests/OpenClaw.Shared.Tests.csproj --no-restore.
  • [P1] dotnet test ./tests/OpenClaw.Tray.Tests/OpenClaw.Tray.Tests.csproj --no-restore.

What I checked:

  • Introduced scope and review continuity: The pinned merge-base-to-head delta contains five design/guidance files and 1,393 additions, with no application or test changes. Raw comparison against the previous reviewed head changes only components.jsonc; the other three design files containing the prior findings are unchanged. A full historical component diff encountered an unavailable-object fetch failure, so continuity claims use the verified raw file comparison. (.agents/design/components.jsonc, ada5a629f923)
  • Explicit Colophon dependency: The added profile names karkarl/colophon's schema, and the captured PR body claims validation through profileio.mjs and validatePresentationProfile. These establish a direct dependency on Colophon's actual consumer contract. (.agents/design/colophon.jsonc:2, ada5a629f923)
  • Presentation-profile contract is unavailable: GitHub verified the repository identity and default branch revision. Its recursive tree contains neither colophon.schema.json nor profileio.mjs. The inspected loadDesign implementation reads design.json, components.jsonc and principles.md; validateDesignDir aggregates tokens and components without reading colophon.jsonc. Component validation does support v3 layouts, so the unsupported part is the presentation profile. (extensions/colophon/designio.mjs:54, d11571af3a9d)
  • Actual build and launch contract: build.ps1 constructs dotnet build arguments; run-app-local.ps1 makes WinAppCLI activation opt-in through UseWinApp. CI uses dotnet publish and MSBuild. The build and launcher blobs are identical at the reviewed head and fetched main, contradicting the new assertion that winapp is the sole build/package toolchain. (build.ps1:368, c71121cdcdc9)
  • Remaining agent-facing documentation defects: The new principles and token metadata still direct readers to components.jsx, although this branch supplies components.jsonc. They also retain prohibited em dashes in agent-facing prose despite the root pointer's punctuation correction. (.agents/design/principles.md:9, ada5a629f923)
  • Still necessary on main and latest release: Tree inspection found no .agents/design files at fetched main or the supplied latest-release commit. The related Seed design system for OpenClaw Windows Hub #962 (Seed design system for OpenClaw Windows Hub) is closed unmerged, so it is neither an implemented replacement nor a safe superseding landing path. (.agents/design, c7c6fb06be03)

Likely related people:

  • karkarl: Suggested for follow-up; no historical authorship or introduction is verified. (role: unverified routing candidate; confidence: low)
  • shanselman: Suggested for follow-up; no historical authorship or introduction is verified. (role: unverified routing candidate; confidence: low)

Rank-up moves

Optional improvements that raise the rating; they are not merge blockers.

  • Remove the unsupported profile and validation claims, or document an available consumer revision that supports them.
  • Correct the WinAppCLI role, catalog references and prohibited punctuation.

Rating scale

Score Internal tier Crab rank Meaning
6/6 S 🦀 challenger crab Exceptional readiness
5/6 A 🦞 diamond lobster Very strong readiness
4/6 B 🐚 platinum hermit Good normal PR; ordinary maintainer review
3/6 C 🦐 gold shrimp Useful, but confidence is limited
2/6 D 🦪 silver shellfish Proof or implementation needs work
1/6 F 🧂 unranked krab Not merge-ready
N/A NA 🌊 off-meta tidepool Rating does not apply

Overall follows the weaker of proof and patch quality.
Shiny media proof means a screenshot, video, or linked artifact directly shows the changed behavior. Runtime, network, CSP, and security claims still need visible diagnostics.

Workflow

  • ClawSweeper keeps one durable marker-backed review comment per issue or PR.
  • Re-runs edit this comment so the latest verdict, findings, and automation markers stay together instead of adding duplicate bot comments.
  • A fresh review can be triggered by eligible @clawsweeper re-review comments, exact-item GitHub events, scheduled/background review runs, or manual workflow dispatch.
  • PR/issue authors and users with repository write access can comment @clawsweeper re-review or @clawsweeper re-run on an open PR or issue to request a fresh review only.
  • Maintainers can also comment @clawsweeper review to request a fresh review only.
  • Fresh-review commands do not start repair, autofix, rebase, CI repair, or automerge.
  • Maintainer-only repair and merge flows require explicit commands such as @clawsweeper autofix, @clawsweeper automerge, @clawsweeper fix ci, or @clawsweeper address review.
  • Maintainers can comment @clawsweeper explain to ask for more context, or @clawsweeper stop to stop active automation.

History

Review history (7 earlier review cycles)
  • reviewed 2026-09-10T18:54:30.498Z sha 2e5def4 :: blocked before merge. :: [P2] Remove em dashes from the appended agent guidance | [P2] Make the catalog-first instruction agree with native precedence | [P3] Replace references to the nonexistent JSX catalog | [P2] Point the presentation profile at an available schema
  • reviewed 2026-09-10T19:02:07.459Z sha 2e5def4 :: blocked before merge. :: [P2] Remove em dashes from the appended agent guidance | [P2] Make the catalog-first instruction agree with native precedence | [P3] Replace references to the nonexistent JSX catalog | [P2] Point the presentation profile at an available schema
  • reviewed 2026-09-10T19:20:21.800Z sha c657cca :: blocked before merge. :: [P2] Remove em dashes from the appended agent guidance | [P2] Make catalog-first instructions agree with native precedence | [P3] Replace references to the nonexistent JSX catalog | [P2] Use an available presentation-profile contract
  • reviewed 2026-09-10T20:38:25.641Z sha cc86739 :: blocked before merge. :: [P2] Use an available Colophon presentation-profile contract | [P2] Describe WinAppCLI as the optional launcher it currently is | [P3] Replace the remaining references to the nonexistent JSX catalog
  • reviewed 2026-09-10T20:52:26.541Z sha cc86739 :: blocked before merge. :: [P2] Use an available Colophon presentation-profile contract | [P2] Describe WinAppCLI as the optional launcher it currently is | [P3] Replace the remaining references to the nonexistent JSX catalog | [P3] Remove prohibited em dashes from the new agent-facing prose
  • reviewed 2026-09-10T23:23:54.688Z sha eaa530f :: needs changes before merge. :: [P2] Use an available Colophon presentation-profile contract | [P2] Describe WinAppCLI as the optional launcher it currently is | [P3] Replace references to the nonexistent JSX catalog | [P3] Remove prohibited em dashes from the new agent-facing prose
  • reviewed 2026-09-11T17:57:22.040Z sha ba2beae :: needs changes before merge. :: [P2] Use an available Colophon presentation-profile contract | [P2] Describe WinAppCLI as the optional launcher it currently is | [P3] Replace references to the nonexistent JSX catalog | [P3] Remove prohibited em dashes from the new agent-facing prose

@karkarl
karkarl marked this pull request as draft September 10, 2026 18:57
ComposerPicker now follows the Fluent ComboBox pattern (bordered control fill + hairline border, ink value, right-aligned muted chevron). ChatComposer and ChatThread are realigned to the actual ReactorChatComposer/ReactorChatTimeline implementation:

- ChatComposer toolbar: adds session picker, speaker, and settings; notes the Send<->Stop toggle; binds ControlFill/ControlStroke (control/controlLine) instead of Card resources; 12px outer margin.

- ChatThread/ChatBubble: user bubble uses the softer accentSubtle (AccentFillColorSecondaryBrush) with a hover Copy; assistant bubble uses subtleHover fill + controlLine border, adds Read aloud, and max-width 720.

Adds 3 tokens the system did not cover: control (ControlFillColorDefaultBrush), controlLine (ControlStrokeColorDefaultBrush), accentSubtle (AccentFillColorSecondaryBrush). Preview hex only; code binds the resource keys.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: ac8d03a2-7198-43dc-8506-709986d6e1d3
@clawsweeper clawsweeper Bot added the merge-risk: 🚨 automation 🚨 Merging this PR could break CI, automerge, proof capture, label sync, or automation. label Sep 10, 2026
…AppCli

Reactor port of the design system's ComposerPicker into the shipping composer: ReactorChatComposer.PickerButton now renders a bordered Fluent ComboBox (ControlFill fill, ControlStroke hairline border, primary-text value, right-aligned muted chevron pinned by a Star/Auto grid, radius 4, MinWidth 64, padding 12/8) instead of a borderless subtle button. Session/model/reasoning selection still opens the existing MenuFlyout of RadioMenuItems.

design.json: add a winapp (WinAppCli, https://github.com/microsoft/WinAppCli) tooling reference to authority and a toolingSource on both the default WinUI 3 port and the Reactor chat override, since XAML and Reactor now build/package through winapp.

Update the composer chevron contract test to assert the ComboBox styling. Remove em dashes from the Colophon pointer block in AGENTS.md so the repo doc validator (no em dashes in user-facing docs) passes.

Validation: build.ps1 OK; OpenClaw.Shared.Tests 3989 passed; OpenClaw.Tray.Tests 2897 passed; design-system validators (componentsio/profileio/validateDesignDir) OK; rubber-duck review clean.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: ac8d03a2-7198-43dc-8506-709986d6e1d3
@clawsweeper clawsweeper Bot added rating: 🦪 silver shellfish Thin PR readiness signal; proof, validation, or implementation needs work. and removed rating: 🦐 gold shrimp Decent PR readiness signal, but merge confidence is limited. labels Sep 10, 2026
The bordered Fluent ComboBox port regressed the composer's session/model/reasoning selectors. Restore the subtle inline dropdown the surface is meant to ship: ReactorChatComposer.PickerButton goes back to a borderless, transparent button (SubtleFillColorTransparent resting, subtle hover/press, muted value + trailing chevron with a small right/up offset). Update the design system's ComposerPicker to the same subtle pattern (transparent fill, no border, muted text/chevron, gap/padding tokens 1/2) and rename the contract test to ReactorComposer_StylesPickersAsSubtleDropdown.

The WinAppCli port authority (design.json) is unchanged.

Validation: build.ps1 OK; OpenClaw.Shared.Tests 3989 passed; OpenClaw.Tray.Tests 2897 passed; design-system validators OK.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: ac8d03a2-7198-43dc-8506-709986d6e1d3
This PR is design-system seeding only. Restore src/OpenClaw.Tray.WinUI/Chat/ReactorChatComposer.cs and tests/OpenClaw.Tray.Tests/ChatTimelinePresentationTests.cs to their main state, removing the composer picker code port entirely. The design system (.agents/design/*) still describes the subtle inline dropdown that the app actually ships, and design.json keeps the WinAppCli port authority. No production code or tests are changed by this PR.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: ac8d03a2-7198-43dc-8506-709986d6e1d3
@clawsweeper clawsweeper Bot added rating: 🦐 gold shrimp Decent PR readiness signal, but merge confidence is limited. and removed rating: 🦪 silver shellfish Thin PR readiness signal; proof, validation, or implementation needs work. merge-risk: 🚨 automation 🚨 Merging this PR could break CI, automerge, proof capture, label sync, or automation. labels Sep 10, 2026
karkarl and others added 2 commits September 11, 2026 10:53
Update the ChatComposer sample values and placeholder to mirror the real Reactor composer (Message Assistant placeholder; Main session / Claude Sonnet 5 / Default pickers), and note that a picker with a single option (the session picker with one session) renders disabled so its label reads lighter than its enabled neighbours. Design data only; no code or token changes.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: ac8d03a2-7198-43dc-8506-709986d6e1d3
The ComposerPicker and the chat icon/send/copy buttons rendered with the
browser default button bevel in the Colophon preview because they were the
only authored el:button nodes without the canonical ds-btn reset class
(border: 1px solid transparent). Adding it drops the retro OS chrome so the
subtle borderless pickers render as intended; inline appearance still drives
radius, color, and the Send accent fill. Design-only, no production changes.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: ac8d03a2-7198-43dc-8506-709986d6e1d3
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

P3 Low-risk cleanup, docs, polish, ergonomics, or speculative feature. rating: 🦐 gold shrimp Decent PR readiness signal, but merge confidence is limited. status: ⏳ waiting on author ClawSweeper has contributor-facing work open and is waiting for author action.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant