Skip to content

feat(workspace): add project resources and customizable icons - #3649

Merged
GCWing merged 4 commits into
mainfrom
gcwing/project-resources-workspace-icons
Oct 31, 2026
Merged

GCWing merged 4 commits into
mainfrom
gcwing/project-resources-workspace-icons

Conversation

@GCWing

@GCWing GCWing commented Oct 31, 2026 •

Copy link
Copy Markdown
Owner

Summary

Add a project resources page for managing a project's directories, scheduled tasks, permissions, Agents and Skills without switching the active workspace. Add host-owned workspace icons with category glyphs, custom colors, and separate light/dark images, shared across desktop, Peer Device and mobile read surfaces.

Type and Areas

Feature / UI / contracts / tests / docs. Web UI, design system / Design Lab, Rust workspace services and contracts, desktop and CLI peer hosts, mobile web.

Motivation / Impact

  • Open project resources directly from the project navigation and inspect scoped statistics, directory cards and resource lists. Creation and editing keep the explicit project/device owner and reject stale responses after switching devices.
  • Persist icon metadata and bounded image assets on the workspace catalog host. Preserve legacy metadata, unknown fields, worktree inheritance, revisions and retry identities.
  • Add the public ColorPicker component and Select group dividers. Reuse shared resource table styling in directory, permission and scheduled-task managers.
  • Advertise icon support through the operation registry and typed peer capabilities. Older hosts show unsupported states; mobile and IM icon editing is explicitly unavailable.

Verification

Passed locally:

  • pnpm run design-system:check
  • pnpm run check:web (includes Appearance and theme/color governance)
  • pnpm run lint:web — no errors; 16 existing warnings.
  • pnpm run i18n:audit
  • pnpm run check:core-boundaries
  • pnpm run capabilities:check
  • pnpm --dir src/mobile-web exec tsc --noEmit
  • Focused Web UI suites: project resources, workspace icons, project permissions/directories, scheduled tasks, explicit Agent/Skill ownership, scene navigation, appearance selection and peer/API integration. Initial 27-file run passed 371 tests; its stale layout assertion was repaired and the 11-test file passed. The three adjusted dialog suites also passed on rerun.
  • node --test scripts/check-core-boundaries.test.mjs src/mobile-web/tests/workspace-identity.test.mjs src/mobile-web/tests/workspace-routing.test.mjs — 181 passed.
  • cargo test --locked -p openbitfun-core --no-default-features --features workspace-icons --lib service::workspace::service::icons — 6 passed.
  • cargo test --locked -p openbitfun-services-core --no-default-features --features workspace-icons --lib workspace_icon_assets — 2 passed.
  • cargo test --locked -p openbitfun-core-types --lib workspace_icon — 3 passed.
  • pnpm --dir src/web-ui run icons:check and icon/startup/i18n runtime fixtures — 32 passed.
  • cargo test --locked -p openbitfun-product-domains --no-default-features remote_surface — 20 passed.
  • Rust formatting for the 16 changed Rust files, git diff --check, and introduced Git object sizes passed.

cargo test --locked -p openbitfun-services-integrations --no-default-features --features remote-connect --lib remote_connect::tests::workspace_icon_ also passed its capability-gated RemoteCommand round-trip fixture. Full PR CI is being tracked before merge.

The first full Web UI CI run passed 13,061 tests and found three integration gaps. Added the three workspace-icon search translations, restored sorted namespace registration, and enumerated the eight project identity colors independently while preserving the existing shared theme count/hash. The three affected suites now pass all 27 tests locally; i18n and all 28 color-governance surfaces also pass. The corrections are in commit 3bcd36679.

The first macOS CLI run also reported an existing daemon-owner release assertion failure. That implementation matches main, whose macOS CLI run passed; the isolated local test and the new-head macOS CLI job both passed. The new-head Linux and Windows CLI jobs also passed.

Reviewer Notes

AI-assisted; tested with focused package, DOM, contract and persistence suites. No browser/computer control or native visual verification was performed, per the requested workflow.

Remote coverage is fixture-based: simulated SSH workspace records, Peer device changes, older capability payloads and mobile routing. No live Remote Workspace, Remote Control, Peer Device or Detached Dispatch environment was exercised. Detached execution ownership is unchanged.

Synced the latest main, regenerated capability projections, and repaired integration blockers already present upstream: missing PageManage Design Lab grouping, the messages-square icon catalog assertion, and the mobile timestamp typography token. Checked open PRs before making those repairs; the related Design Lab PR does not touch these contracts.

Checklist

  • Includes the current project-resource and workspace-icon changes without secrets or process artifacts.
  • Relevant verification and limits are recorded above.
  • User-facing strings, docs, and locales are updated.

@GCWing
GCWing merged commit 6b0e6f8 into main Oct 31, 2026
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