Skip to content

feat(ui): adopt Synara styling and activity-only navigation - #45

Merged
ckafrouni merged 4 commits into
mainfrom
feat/replicate-synara-ui
Oct 19, 2026
Merged

ckafrouni merged 4 commits into
mainfrom
feat/replicate-synara-ui

Conversation

@ckafrouni

@ckafrouni ckafrouni commented Oct 18, 2026 •

Copy link
Copy Markdown
Collaborator

Problem

The desktop presentation had inconsistent sidebar layouts and lacked the Synara styling requested for this fork. Keeping separate Activity and project-list sidebars also added UI and maintenance work that is no longer needed.

Change

  • Adopt Synara's frame, icons, panel-tab styling, composer, animated new-chat background, and macOS transparency. Add a Synara palette and preserve the original palettes under T3 Code. Panel animations default to 125 ms.
  • Keep Activity as the only thread sidebar. Remove the project-list component, switch, retired preferences, unused expansion state/helpers, unused icon aliases and legacy hooks, and auto-animate dependency. Old saved settings still decode while preserving other preferences.
  • Present existing project groups as Spaces, with Home including unassigned projects. Add pinned project/Space shortcuts with their actual icons and saved drag ordering. The Spaces manager fills the workspace beside the rail.
  • Preserve T3's single active-thread header and existing provider, conversation, panel, and compaction workflows. No multi-thread tabs are introduced.
  • Isolate development Electron profiles and Safe Storage identities to prevent repeated Keychain prompts. Package the adjustable macOS blur add-on with native vibrancy as its fallback.
  • Carry the palettes through mobile theme generation and include Synara's MIT attribution. Mobile navigation is unchanged.

Scope and approval

Maintainer-requested Otter Code fork work, refined in this coding session around Synara presentation and T3 functionality. This PR targets the fork's main; it is not an upstream T3 submission. Server/provider orchestration is unchanged. Shared client runtime only makes two internally used project-grouping helpers private; their behavior is unchanged.

The 468 changed files include 173 SVG icon assets and 170 source files whose changes are limited to imports. The remaining 125 contain the UI/native/theme work, tests, and supporting changes.

Verification

  • Rebased onto the fixed main at b17f73966 without conflicts. The updated mobile activity tests also pass. 690 focused tests passed across contracts/settings compatibility, native window materials and dev identity, packaging, sidebar logic, UI state, Spaces/rail selection, new-thread actions, and themes.
  • 123 focused Chromium component tests passed across the timeline, composer geometry, panel tabs and keyboard navigation, sidebar pointer handling, palette focus, settings restoration, and settings selectors. Screenshots were disabled.
  • Additional focused checks passed for native materials/packaging, Safe Storage, mobile theme generation/contrast, compaction, and composer behavior during implementation.
  • After the CI cleanup, 345 focused tests passed for generation consistency, theme/native materials, grouping, sidebar/status behavior, discovery, permissions, and thread state. Web, desktop, and mobile typechecks passed; targeted lint, formatting, scoped unused-code, dependency, and export checks, and frozen-lockfile installation passed. License synchronization passed during implementation.
  • Earlier verification in the real desktop app using isolated state covered: Activity in Home/Spaces, project filtering/search, sidebar collapse/expand, project icons and rail ordering, Spaces manager width, continuous new-chat background, PR titlebar paint, and panel close glyphs. Imported fixtures contain stopped histories; live userdata was not modified.
  • Inherited limitation: the menu trigger reports a stale aria-expanded value after opening, also reproduced with the upstream control/icon. Pointer opening, menu visibility, and Escape closing pass; its runtime was preserved.
  • Native mobile UI was not exercised. Adjustable native blur is macOS-specific; other platforms retain their fallback surfaces.
  • Visual attachments are omitted at the maintainer's request; desktop verification is described above.

Model: GPT-6.1-sol. Harness: Codex in T3 Code.

@ckafrouni
ckafrouni force-pushed the feat/replicate-synara-ui branch from 8f607b8 to 35c7c5a Compare October 19, 2026 07:20
@ckafrouni
ckafrouni merged commit 7fc2331 into main Oct 19, 2026
18 of 19 checks passed
@ckafrouni
ckafrouni deleted the feat/replicate-synara-ui branch October 19, 2026 07:54
ckafrouni added a commit that referenced this pull request Oct 19, 2026
* test(mobile): match Otter thread activity labels (#47)

* feat(ui): adopt Synara styling and activity-only navigation (#45)

* feat(ui): adopt Synara styling and activity-only navigation

* fix(ui): align dev identity tests and remove unused sidebar helper

* fix(ui): align Synara components with upstream compiler and tests

* fix(ui): remove unused aliases and refresh generated theme types
Laurin-Notemann pushed a commit that referenced this pull request Oct 21, 2026
* test(mobile): match Otter thread activity labels (#47)

* feat(ui): adopt Synara styling and activity-only navigation (#45)

* feat(ui): adopt Synara styling and activity-only navigation

* fix(ui): align dev identity tests and remove unused sidebar helper

* fix(ui): align Synara components with upstream compiler and tests

* fix(ui): remove unused aliases and refresh generated theme types
Laurin-Notemann pushed a commit that referenced this pull request Oct 22, 2026
* test(mobile): match Otter thread activity labels (#47)

* feat(ui): adopt Synara styling and activity-only navigation (#45)

* feat(ui): adopt Synara styling and activity-only navigation

* fix(ui): align dev identity tests and remove unused sidebar helper

* fix(ui): align Synara components with upstream compiler and tests

* fix(ui): remove unused aliases and refresh generated theme types
Laurin-Notemann pushed a commit that referenced this pull request Oct 23, 2026
* test(mobile): match Otter thread activity labels (#47)

* feat(ui): adopt Synara styling and activity-only navigation (#45)

* feat(ui): adopt Synara styling and activity-only navigation

* fix(ui): align dev identity tests and remove unused sidebar helper

* fix(ui): align Synara components with upstream compiler and tests

* fix(ui): remove unused aliases and refresh generated theme types
Laurin-Notemann pushed a commit that referenced this pull request Oct 23, 2026
* test(mobile): match Otter thread activity labels (#47)

* feat(ui): adopt Synara styling and activity-only navigation (#45)

* feat(ui): adopt Synara styling and activity-only navigation

* fix(ui): align dev identity tests and remove unused sidebar helper

* fix(ui): align Synara components with upstream compiler and tests

* fix(ui): remove unused aliases and refresh generated theme types
Laurin-Notemann pushed a commit that referenced this pull request Oct 24, 2026
* test(mobile): match Otter thread activity labels (#47)

* feat(ui): adopt Synara styling and activity-only navigation (#45)

* feat(ui): adopt Synara styling and activity-only navigation

* fix(ui): align dev identity tests and remove unused sidebar helper

* fix(ui): align Synara components with upstream compiler and tests

* fix(ui): remove unused aliases and refresh generated theme types
Laurin-Notemann pushed a commit that referenced this pull request Oct 25, 2026
* test(mobile): match Otter thread activity labels (#47)

* feat(ui): adopt Synara styling and activity-only navigation (#45)

* feat(ui): adopt Synara styling and activity-only navigation

* fix(ui): align dev identity tests and remove unused sidebar helper

* fix(ui): align Synara components with upstream compiler and tests

* fix(ui): remove unused aliases and refresh generated theme types
Laurin-Notemann pushed a commit that referenced this pull request Oct 26, 2026
* test(mobile): match Otter thread activity labels (#47)

* feat(ui): adopt Synara styling and activity-only navigation (#45)

* feat(ui): adopt Synara styling and activity-only navigation

* fix(ui): align dev identity tests and remove unused sidebar helper

* fix(ui): align Synara components with upstream compiler and tests

* fix(ui): remove unused aliases and refresh generated theme types
Laurin-Notemann pushed a commit that referenced this pull request Oct 28, 2026
* test(mobile): match Otter thread activity labels (#47)

* feat(ui): adopt Synara styling and activity-only navigation (#45)

* feat(ui): adopt Synara styling and activity-only navigation

* fix(ui): align dev identity tests and remove unused sidebar helper

* fix(ui): align Synara components with upstream compiler and tests

* fix(ui): remove unused aliases and refresh generated theme types
Laurin-Notemann pushed a commit that referenced this pull request Oct 30, 2026
* test(mobile): match Otter thread activity labels (#47)

* feat(ui): adopt Synara styling and activity-only navigation (#45)

* feat(ui): adopt Synara styling and activity-only navigation

* fix(ui): align dev identity tests and remove unused sidebar helper

* fix(ui): align Synara components with upstream compiler and tests

* fix(ui): remove unused aliases and refresh generated theme types
Laurin-Notemann pushed a commit that referenced this pull request Oct 31, 2026
* test(mobile): match Otter thread activity labels (#47)

* feat(ui): adopt Synara styling and activity-only navigation (#45)

* feat(ui): adopt Synara styling and activity-only navigation

* fix(ui): align dev identity tests and remove unused sidebar helper

* fix(ui): align Synara components with upstream compiler and tests

* fix(ui): remove unused aliases and refresh generated theme types
Laurin-Notemann pushed a commit that referenced this pull request Nov 2, 2026
* test(mobile): match Otter thread activity labels (#47)

* feat(ui): adopt Synara styling and activity-only navigation (#45)

* feat(ui): adopt Synara styling and activity-only navigation

* fix(ui): align dev identity tests and remove unused sidebar helper

* fix(ui): align Synara components with upstream compiler and tests

* fix(ui): remove unused aliases and refresh generated theme types
Laurin-Notemann pushed a commit that referenced this pull request Nov 3, 2026
* test(mobile): match Otter thread activity labels (#47)

* feat(ui): adopt Synara styling and activity-only navigation (#45)

* feat(ui): adopt Synara styling and activity-only navigation

* fix(ui): align dev identity tests and remove unused sidebar helper

* fix(ui): align Synara components with upstream compiler and tests

* fix(ui): remove unused aliases and refresh generated theme types
Laurin-Notemann pushed a commit that referenced this pull request Nov 4, 2026
* test(mobile): match Otter thread activity labels (#47)

* feat(ui): adopt Synara styling and activity-only navigation (#45)

* feat(ui): adopt Synara styling and activity-only navigation

* fix(ui): align dev identity tests and remove unused sidebar helper

* fix(ui): align Synara components with upstream compiler and tests

* fix(ui): remove unused aliases and refresh generated theme types
Laurin-Notemann pushed a commit that referenced this pull request Nov 5, 2026
* test(mobile): match Otter thread activity labels (#47)

* feat(ui): adopt Synara styling and activity-only navigation (#45)

* feat(ui): adopt Synara styling and activity-only navigation

* fix(ui): align dev identity tests and remove unused sidebar helper

* fix(ui): align Synara components with upstream compiler and tests

* fix(ui): remove unused aliases and refresh generated theme types
Laurin-Notemann pushed a commit that referenced this pull request Nov 7, 2026
* test(mobile): match Otter thread activity labels (#47)

* feat(ui): adopt Synara styling and activity-only navigation (#45)

* feat(ui): adopt Synara styling and activity-only navigation

* fix(ui): align dev identity tests and remove unused sidebar helper

* fix(ui): align Synara components with upstream compiler and tests

* fix(ui): remove unused aliases and refresh generated theme types
Laurin-Notemann pushed a commit that referenced this pull request Nov 8, 2026
* test(mobile): match Otter thread activity labels (#47)

* feat(ui): adopt Synara styling and activity-only navigation (#45)

* feat(ui): adopt Synara styling and activity-only navigation

* fix(ui): align dev identity tests and remove unused sidebar helper

* fix(ui): align Synara components with upstream compiler and tests

* fix(ui): remove unused aliases and refresh generated theme types
Laurin-Notemann pushed a commit that referenced this pull request Nov 9, 2026
* test(mobile): match Otter thread activity labels (#47)

* feat(ui): adopt Synara styling and activity-only navigation (#45)

* feat(ui): adopt Synara styling and activity-only navigation

* fix(ui): align dev identity tests and remove unused sidebar helper

* fix(ui): align Synara components with upstream compiler and tests

* fix(ui): remove unused aliases and refresh generated theme types
Laurin-Notemann pushed a commit that referenced this pull request Nov 10, 2026
* test(mobile): match Otter thread activity labels (#47)

* feat(ui): adopt Synara styling and activity-only navigation (#45)

* feat(ui): adopt Synara styling and activity-only navigation

* fix(ui): align dev identity tests and remove unused sidebar helper

* fix(ui): align Synara components with upstream compiler and tests

* fix(ui): remove unused aliases and refresh generated theme types
Laurin-Notemann pushed a commit that referenced this pull request Nov 11, 2026
* test(mobile): match Otter thread activity labels (#47)

* feat(ui): adopt Synara styling and activity-only navigation (#45)

* feat(ui): adopt Synara styling and activity-only navigation

* fix(ui): align dev identity tests and remove unused sidebar helper

* fix(ui): align Synara components with upstream compiler and tests

* fix(ui): remove unused aliases and refresh generated theme types
Laurin-Notemann pushed a commit that referenced this pull request Nov 12, 2026
* test(mobile): match Otter thread activity labels (#47)

* feat(ui): adopt Synara styling and activity-only navigation (#45)

* feat(ui): adopt Synara styling and activity-only navigation

* fix(ui): align dev identity tests and remove unused sidebar helper

* fix(ui): align Synara components with upstream compiler and tests

* fix(ui): remove unused aliases and refresh generated theme types
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