You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Jay, 2026-07-26: taOS ships 45 always-on apps plus 9 optional studios and 3
games. macOS ships around 30 and hides most of them. The problem is not the
feature count, it is that many entries are not apps at all: they are settings
panes or file handlers wearing app costumes.
Tier 2 - System group (launcher, grouped, not Settings): Cluster,
Memory, Observatory, Models. These are real management surfaces with their
own workflows; burying them in Settings would repeat the Decisions mistake.
Tier 4 - handlers (no launcher entry, open from Files): Text Editor,
Image Viewer, Media Player. Preview/QuickLook model.
Tier 5 - Store-optional, off by default: studios, games, feeds.
Result: ~12 default icons instead of 45, with nothing deleted.
Merges
Models + Providers -> one app. Providers configures models; one mental
model, one icon.
Notification Archive -> tab inside Notifications. A launcher icon for
"the archive of the thing in your menu bar" is a UX smell.
Text Editor / Image Viewer / Media Player -> file handlers. Registry
gains handler: true; excluded from the launcher, still openable by id
(agents open them directly - the id must keep working).
Contacts -> shared pane read by Mail and Messages; Channels ->
Settings (it is connector configuration).
Reddit / YouTube / X / GitHub browsers -> one Feeds app, Store-optional,
off by default. agent-browsers needs an inventory before it is folded -
do not assume it duplicates Browser.
Chess / Wordle / Crosswords -> one Games entry, Store-optional.
Dashboard ("Activity") vs Observatory overlap on "what is happening now"
and need an inventory before the split is decided.
Explicitly NOT merged: Decisions. It looks like a notifications duplicate
but it is the human-in-the-loop approval gate. Burying approvals inside a
notification feed is how agent consent requests get missed.
Constraints any slice must respect
Existing installs must not break. Users have these apps pinned to docks
and launchpads. Removing an app id orphans a pin. Every removal ships a
redirect map (old id -> {app, section}) so a pinned Providers icon opens
Models/Providers rather than vanishing. Unresolvable pins are removed once,
with a notification explaining where the thing went.
Agents drive the OS by app id. Renaming or removing ids breaks agent
skills, the agent manual, and the desktop control API. Every slice updates
the agent-facing docs in the SAME PR, and ids are kept resolvable.
Optional apps are a backend contract (OPTIONAL_FRONTEND_APPS in tinyagentos/routes/apps.py), not just a frontend flag. Tier 5 moves must
update both sides plus the store catalog.
Deep links keep working. Any documented URL route for a moved surface
redirects to its new home.
Slices
S1 registry tiering foundation - tier/group/handler fields, launcher
grouping + System group, redirect map + migration for pinned items. Blocks
most others.
App consolidation and launcher tiering
Jay, 2026-07-26: taOS ships 45 always-on apps plus 9 optional studios and 3
games. macOS ships around 30 and hides most of them. The problem is not the
feature count, it is that many entries are not apps at all: they are settings
panes or file handlers wearing app costumes.
The tiering model
Projects, Agents, Teams, Decisions, Store, Library, Images, Settings.
Memory, Observatory, Models. These are real management surfaces with their
own workflows; burying them in Settings would repeat the Decisions mistake.
MCP, Secrets, Channels. Genuinely config-shaped.
Image Viewer, Media Player. Preview/QuickLook model.
Result: ~12 default icons instead of 45, with nothing deleted.
Merges
model, one icon.
"the archive of the thing in your menu bar" is a UX smell.
gains
handler: true; excluded from the launcher, still openable by id(agents open them directly - the id must keep working).
checklist. Blocked until Lists S1+S2 land.
Settings (it is connector configuration).
off by default.
agent-browsersneeds an inventory before it is folded -do not assume it duplicates Browser.
and need an inventory before the split is decided.
Explicitly NOT merged: Decisions. It looks like a notifications duplicate
but it is the human-in-the-loop approval gate. Burying approvals inside a
notification feed is how agent consent requests get missed.
Constraints any slice must respect
and launchpads. Removing an app id orphans a pin. Every removal ships a
redirect map (old id -> {app, section}) so a pinned Providers icon opens
Models/Providers rather than vanishing. Unresolvable pins are removed once,
with a notification explaining where the thing went.
skills, the agent manual, and the desktop control API. Every slice updates
the agent-facing docs in the SAME PR, and ids are kept resolvable.
OPTIONAL_FRONTEND_APPSintinyagentos/routes/apps.py), not just a frontend flag. Tier 5 moves mustupdate both sides plus the store catalog.
redirects to its new home.
Slices
tier/group/handlerfields, launchergrouping + System group, redirect map + migration for pinned items. Blocks
most others.
agent-browsersinventory).