Skip to content

UI polish 1/12 — Foundation: design tokens, soft typography, global base - #14

Merged
mlcyclops merged 1 commit into
masterfrom
polish/foundation-tokens
Jun 20, 2026
Merged

UI polish 1/12 — Foundation: design tokens, soft typography, global base#14
mlcyclops merged 1 commit into
masterfrom
polish/foundation-tokens

Conversation

@mlcyclops

Copy link
Copy Markdown
Owner

Part of the Apple-level UI/UX polish batch. Independent, region-scoped slice (polish/foundation-tokens) so it merges on its own.

Gate per worker: desktop tsc --noEmit + bun build desktop/renderer/app.ts --target=browser + bun test harness (green) + /code-review.

🤖 Generated with Claude Code

…atch unit 1)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@mlcyclops
mlcyclops merged commit fc17fd4 into master Jun 20, 2026
5 checks passed
@mlcyclops
mlcyclops deleted the polish/foundation-tokens branch June 20, 2026 06:25
mlcyclops pushed a commit that referenced this pull request Jun 21, 2026
…s, dashboard escaping (ADR-0026)

Five real fixes from the open CodeQL alerts on master:

- #3/#4 js/stack-trace-exposure (desktop/dev.ts, tools/web/server.ts): the catch
  handlers returned String(err) to the client. Now they log the detail
  server-side and return a generic {ok:false,error:"internal error"}.
- #5 js/file-system-race (harness/memory/state.ts): existsSync-then-writeFileSync
  was a TOCTOU. Now a single writeFileSync(..., {flag:"wx"}) (create-or-fail,
  EEXIST-safe); existing files preserved. existsSync dropped from imports.
- #6 js/insecure-temporary-file (harness/personal/store.ts): the encrypted store
  was written then chmod'd, leaving a 0644 window. Now created owner-only via
  {mode:0o600}; chmod kept for the overwrite-existing case.
- #1 js/incomplete-html-attribute-sanitization (tools/web/index.html): the
  dashboard esc() escaped only &<> but its output lands in double-quoted
  attributes — a " could break out (attribute XSS). It now escapes " and ' too,
  matching the desktop renderer's esc.

The eight "File data in outbound network request" alerts (asksage, ratelimit_
probe) are intended API-key transmission to configured provider endpoints and
are dispositioned dismiss-as-by-design. #14/#15 were fixed by #41 (auto-close).

Tests: store-perms assertion (0600); state reopen/no-clobber already covered.
Verified live: a forced handler error returns the generic body with the real
SyntaxError only in the server log. harness 195 pass (+1), desktop 33, root +
desktop tsc clean. ADR-0026 + PROGRESS recorded.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FrTqRvkZBtq3NdEExxyCLG
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