Skip to content

feat(studios): Creative Studios -- Store Studios section + 5 studio apps + install wiring#966

Merged
jaylfc merged 17 commits into
devfrom
feat/studios
Jun 16, 2026
Merged

feat(studios): Creative Studios -- Store Studios section + 5 studio apps + install wiring#966
jaylfc merged 17 commits into
devfrom
feat/studios

Conversation

@jaylfc

@jaylfc jaylfc commented Jun 16, 2026

Copy link
Copy Markdown
Owner

Adds the Creative Studios family as optional Store apps (first-pass UI, static data, no backend yet).

  • Store Studios section (StudiosView): taOS Studios grid, Community Studios, shareable layouts row, new sidebar nav entry.
  • Five studio apps matching the shared studio shell: Coding, Design, Music, App, Office (each with its views).
  • Registered as optional desktop apps (app-registry).
  • Install wiring: extends the existing optional-frontend-app flow (PR feat(apps): make Reddit/YouTube/GitHub/X optional Store installs (#53) #946) to the studios -- backend allowlist + Studios-section Get/Open wired to real install + launch, live install state via APP_OPTIONAL_CHANGED.

84 desktop tests pass, tsc + build clean. Deployed to the Pi for review. Dev only for now (Jay gating master).

Summary by CodeRabbit

  • New Features
    • Added five new Studio applications: App Studio (for building apps), Coding Studio (for development), Design Studio (for design work), Music Studio (for music creation), and Office Suite (for productivity). Each includes specialized tools and views tailored to its purpose.
    • Introduced a "Studios" section in the Store app showcasing available studios with installation options, previews, and community recommendations.

jaylfc added 17 commits June 16, 2026 18:04
Release v1.0.0-beta.3: mobile Store redesign + Store covers/icons
docs: refresh README screenshots (beta.3 UI)
docs: add studio screenshots to README
docs: extend studios list (Coding + App Studio)
docs: reword studios intro copy
- Add "studios" to NavId union and NAV array (after "apps", Sparkles icon)
- Add studioState field to CatalogApp type for installed/available/soon lifecycle
- Add STUDIOS_APPS catalog entries (type "studio") with cover gradients
- Add NAV_TYPE_MAP entry for "studios" -> ["studio"]
- Wire StudiosView into the content switcher (alongside discover/community)
- New StudiosView component: hero card (Coding Studio), 4x2 taOS Studios grid
  with Soon badges, community studios horizontal scroll, layout chips row
- StudiosView.test.tsx: 6 tests covering headings, cards, Soon badges, hero
Adds CodingStudioApp as an optional platform app with three views:
BuildView (file tree + syntax editor + build log panel),
TemplatesView (hero prompt + 8 template cards), and PreviewView
(URL bar + device toggle + simulated todo app + dev console).
Registered in app-registry at launchpadOrder 13.25, optional: true.
Includes 6 vitest tests covering titlebar, rail items, and view switching.
First-pass static UI: Studio (transport bar, track list, timeline with
clip blocks, right inspector, piano roll), Compose (AI prompt + style
chips + results list), Sounds (filter pills + 4-col instrument grid).
Matches music-studio-mock.html layout and follows CodingStudioApp shell
pattern (46px titlebar, 68px rail, shell tokens, muted track palette).
9/9 vitest tests pass, tsc clean, vite build succeeds.
Canvas-editor shell matching the approved mock: Design/Templates/Magic
views, left element rail, artboard with selection box, properties panel
with Magic edits chip bar, 8-card template grid, and AI prompt tile.
Static first-pass UI matching the approved office-suite-mock.html design.
Follows CodingStudioApp shell pattern: 46px titlebar, 68px icon rail,
per-view subfolder components, shell tokens throughout.
…es/Publish views

Static first-pass UI matching the approved mock. Follows the canonical
studio shell pattern (46px titlebar, 68px icon rail, per-view subdir).
No registry wiring -- lead handles that separately.

- AppStudioApp.tsx: shell with Build/Templates/Publish/SDK rail
- appstudio/BuildView.tsx: checkerboard sandbox preview (Chore Quest
  app-in-window), build log steps, capabilities panel, model pill,
  prompt bar
- appstudio/TemplatesView.tsx: hero + 8-card template grid
- appstudio/PublishView.tsx: app identity header, capability toggles
  (Workspace/Notifications/Household), safety note, publish side panel
- AppStudioApp.test.tsx: 5 tests covering titlebar, rail items, default
  Build view, Templates switch, and Publish switch with capability rows
Register Coding/Design/Music/App/Office as optional desktop apps. Extend
the optional-frontend-app allowlist to cover them so /api/apps/optional/
install accepts them. Wire the Store Studios section: Get installs via
the optional-app endpoint and emits APP_OPTIONAL_CHANGED (the launcher
surfaces it at once); Open launches the app via the process store. Flip
the four newly built studios from 'soon' to 'available'; Web Studio stays
'soon'.
@qodo-code-review

Copy link
Copy Markdown

Qodo reviews are paused for this user.

Troubleshooting steps vary by plan Learn more →

On a Teams plan?
Reviews resume once this user has a paid seat and their Git account is linked in Qodo.
Link Git account →

Using GitHub Enterprise Server, GitLab Self-Managed, or Bitbucket Data Center?
These require an Enterprise plan - Contact us
Contact us →

@jaylfc jaylfc merged commit b335b42 into dev Jun 16, 2026
1 check failed
@github-project-automation github-project-automation Bot moved this from Todo to Done in TinyAgentOS Roadmap Jun 16, 2026
@coderabbitai

coderabbitai Bot commented Jun 16, 2026

Copy link
Copy Markdown

Review Change Stack

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: 4cdfe4bb-a195-42e5-b521-87cb19e57fb7

📥 Commits

Reviewing files that changed from the base of the PR and between 1804c67 and 3b63f84.

📒 Files selected for processing (31)
  • desktop/src/apps/AppStudioApp.test.tsx
  • desktop/src/apps/AppStudioApp.tsx
  • desktop/src/apps/CodingStudioApp.test.tsx
  • desktop/src/apps/CodingStudioApp.tsx
  • desktop/src/apps/DesignStudioApp.test.tsx
  • desktop/src/apps/DesignStudioApp.tsx
  • desktop/src/apps/MusicStudioApp.test.tsx
  • desktop/src/apps/MusicStudioApp.tsx
  • desktop/src/apps/OfficeSuiteApp.test.tsx
  • desktop/src/apps/OfficeSuiteApp.tsx
  • desktop/src/apps/StoreApp/StudiosView.test.tsx
  • desktop/src/apps/StoreApp/StudiosView.tsx
  • desktop/src/apps/StoreApp/index.tsx
  • desktop/src/apps/StoreApp/types.ts
  • desktop/src/apps/appstudio/BuildView.tsx
  • desktop/src/apps/appstudio/PublishView.tsx
  • desktop/src/apps/appstudio/TemplatesView.tsx
  • desktop/src/apps/codingstudio/BuildView.tsx
  • desktop/src/apps/codingstudio/PreviewView.tsx
  • desktop/src/apps/codingstudio/TemplatesView.tsx
  • desktop/src/apps/designstudio/DesignView.tsx
  • desktop/src/apps/designstudio/MagicView.tsx
  • desktop/src/apps/designstudio/TemplatesView.tsx
  • desktop/src/apps/musicstudio/ComposeView.tsx
  • desktop/src/apps/musicstudio/SoundsView.tsx
  • desktop/src/apps/musicstudio/StudioView.tsx
  • desktop/src/apps/officesuite/CalcView.tsx
  • desktop/src/apps/officesuite/SlidesView.tsx
  • desktop/src/apps/officesuite/WriteView.tsx
  • desktop/src/registry/app-registry.ts
  • tinyagentos/routes/apps.py

📝 Walkthrough

Walkthrough

Five new optional desktop studio apps (App Studio, Coding Studio, Design Studio, Music Studio, Office Suite) are added, each with a left-rail shell component, multiple sub-views, and a test suite. A Studios discovery tab is added to the Store app with install/open logic backed by StudiosView. The five app IDs are registered in both the frontend app registry and the Python backend allowlist.

Changes

Studio Apps, Store Studios Tab, and Registration

Layer / File(s) Summary
App registry and backend allowlist
desktop/src/registry/app-registry.ts, tinyagentos/routes/apps.py
Registers five AppManifest entries (optional, launchpadOrder 13.25–13.29) in the frontend registry and expands OPTIONAL_FRONTEND_APPS in the Python backend to accept the new app IDs.
Store Studios tab: type, routing, data, install logic, and tests
desktop/src/apps/StoreApp/types.ts, desktop/src/apps/StoreApp/index.tsx, desktop/src/apps/StoreApp/StudiosView.tsx, desktop/src/apps/StoreApp/StudiosView.test.tsx
Adds studioState to CatalogApp, extends NavId/NAV with a studios entry, routes to StudiosView in the store shell, and implements the full Studios page with featured hero, first-party grid, community scroller, layout chips, and install/open handlers that emit APP_OPTIONAL_CHANGED.
App Studio shell, sub-views, and tests
desktop/src/apps/AppStudioApp.tsx, desktop/src/apps/appstudio/BuildView.tsx, desktop/src/apps/appstudio/TemplatesView.tsx, desktop/src/apps/appstudio/PublishView.tsx, desktop/src/apps/AppStudioApp.test.tsx
AppStudioApp manages view state and renders a rail shell switching among BuildView (chore list + build log), TemplatesView (4-card grid), PublishView (permission toggles + publish actions), and an SDK placeholder.
Coding Studio shell, sub-views, and tests
desktop/src/apps/CodingStudioApp.tsx, desktop/src/apps/codingstudio/BuildView.tsx, desktop/src/apps/codingstudio/PreviewView.tsx, desktop/src/apps/codingstudio/TemplatesView.tsx, desktop/src/apps/CodingStudioApp.test.tsx
CodingStudioApp routes among BuildView (file tree + syntax-highlighted code + build log), PreviewView (device-mode bar + todo-app frame + console), and TemplatesView (hero prompt + 8-card grid).
Design Studio shell, sub-views, and tests
desktop/src/apps/DesignStudioApp.tsx, desktop/src/apps/designstudio/DesignView.tsx, desktop/src/apps/designstudio/TemplatesView.tsx, desktop/src/apps/designstudio/MagicView.tsx, desktop/src/apps/DesignStudioApp.test.tsx
DesignStudioApp routes among DesignView (three-column canvas editor), TemplatesView (filter pills + grid), and MagicView (prompt bar + style chips + result tiles).
Music Studio shell, sub-views, and tests
desktop/src/apps/MusicStudioApp.tsx, desktop/src/apps/musicstudio/StudioView.tsx, desktop/src/apps/musicstudio/ComposeView.tsx, desktop/src/apps/musicstudio/SoundsView.tsx, desktop/src/apps/MusicStudioApp.test.tsx
MusicStudioApp routes among StudioView (transport bar + timeline + piano roll), ComposeView (style chips + generated result cards), SoundsView (filter pills + sound card grid), and coming-soon placeholders for Mixer/Export.
Office Suite shell, sub-views, and tests
desktop/src/apps/OfficeSuiteApp.tsx, desktop/src/apps/officesuite/WriteView.tsx, desktop/src/apps/officesuite/CalcView.tsx, desktop/src/apps/officesuite/SlidesView.tsx, desktop/src/apps/OfficeSuiteApp.test.tsx
OfficeSuiteApp routes among WriteView (formatting toolbar + AI Assist panel), CalcView (spreadsheet + bar chart), SlidesView (thumbnail rail + slide stage + layout picker), and a Data placeholder.

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~60 minutes

Possibly related PRs

  • jaylfc/taOS#871: Both PRs extend the CatalogApp interface in desktop/src/apps/StoreApp/types.ts with new optional metadata fields directly on the same exported type.
  • jaylfc/taOS#952: Both PRs expand OPTIONAL_FRONTEND_APPS in tinyagentos/routes/apps.py to register additional optional frontend app IDs and update related optional-app surfacing logic.
  • jaylfc/taOS#946: Both PRs modify tinyagentos/routes/apps.py and desktop/src/registry/app-registry.ts to register new apps as optional, following the same optional install model.

Poem

🐰 Five studios bloom where once was none,
A rail of icons — build, design, and strum!
The Store now sparkles with a Studios tab,
Install with one click, no need to grab.
The bunny hops through code and canvas wide,
With music, slides, and magic by its side! 🎵✨

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/studios

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

jaylfc added a commit that referenced this pull request Jun 16, 2026
jaylfc added a commit that referenced this pull request Jun 16, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Development

Successfully merging this pull request may close these issues.

1 participant