#571: ship Calendar/Notifications disabled by default + drop Notifications tile from home

Task: on fresh installs the Calendar and Notifications apps were
appearing enabled by default, and the home screen showed a
Notifications tile that was redundant with the bell icon already in
the top bar. User wanted both apps disabled by default and the home
tile gone (bell stays).

Changes:
- scripts/src/seed.ts: flip the seed `isActive` for `notifications`
  and `calendar` from true → false. The seed inserts apps with
  `db.insert(appsTable).values(apps).onConflictDoNothing()`, so this
  is fully idempotent: existing environments (where the row already
  exists with isActive=true) are NOT changed; only fresh inserts on
  new installs pick up the disabled default. Admins can enable
  either app from app settings when they want it.
- artifacts/tx-os/src/pages/home.tsx: remove "notifications" from
  the `dockApps` filter so the bottom dock no longer renders a
  Notifications tile. Filter becomes `["services", "admin"]`. The
  top-bar bell icon (and its unread badge) was untouched and still
  routes to `/notifications`.

Out of scope (per spec): no migration to disable existing prod
rows; no role/permission changes; bell icon in the top bar stays.

Files:
- scripts/src/seed.ts (notifications block ~L229, calendar block ~L275)
- artifacts/tx-os/src/pages/home.tsx:532
This commit is contained in:
riyadhafraa
2026-05-17 14:42:48 +00:00
parent c40384b0d9
commit 2aa4a12ddc
2 changed files with 19 additions and 3 deletions
+13 -2
View File
@@ -231,7 +231,14 @@ async function main() {
iconName: "Bell",
route: "/notifications",
color: "#8b5cf6",
isActive: true,
// #571: ship the Notifications app DISABLED by default so fresh
// installs don't surface a redundant tile alongside the bell icon
// already in the top bar. The bell stays the canonical entry
// point; admins can flip this on from app settings if they want
// the launcher tile too. Insert here uses onConflictDoNothing,
// so existing environments that already have the app enabled
// are NOT affected — only new inserts pick up the default.
isActive: false,
isSystem: true,
sortOrder: 3,
},
@@ -270,7 +277,11 @@ async function main() {
iconName: "Calendar",
route: "/calendar",
color: "#3b82f6",
isActive: true,
// #571: ship the Calendar app DISABLED by default. Admins can
// enable it from app settings when they actually want a
// calendar surface. Insert uses onConflictDoNothing so existing
// environments where calendar is already enabled stay enabled.
isActive: false,
isSystem: false,
sortOrder: 5,
},