Files
buzz/preview-features.json
npub1223z34hd7vtwc6qj4s7flsxkj644nlre2nthu7lrrmkumhu3xddsrx9r6w e120d6dfaa refactor(features): preview-only manifest + screenshot CI wiring
Per tho's clarification, the manifest is preview-only by design — a bad
rebase had widened it to include stable entries with an explicit `tier`
field. Restoring the original shape:

- Rename `features.json` -> `preview-features.json` (loader, alias,
  ts-config, vite alias, test-loader-hooks, helpers, log strings).
- Drop the 4 stable entries from the manifest. Only the 4 preview
  features remain (workflows, projects, pulse, forum).
- Drop the `tier` field from the schema, types, and Zod validator —
  manifest membership is now sufficient ("in the file = preview;
  absent = stable, fail-open").
- Simplify `resolveEnabled(featureId, overrides)` — once you're inside
  it, the feature is preview by definition.
- `useFeatureEnabled`: in-manifest -> check overrides; otherwise return
  true (fail-open).
- `usePreviewFeatureWarning`: gate on manifest membership instead of
  `tier === 'preview'`.
- Settings: `ExperimentalFeaturesCard` lists every desktop feature in
  the manifest directly; SettingsView feature gate uses the new
  `resolveEnabled` signature.
- Tests: rewrote `resolveEnabled.test.mjs` for the new signature; helper
  drops the tier filter.

Per Marge's review on the previous push, `screenshot-feature-flags.ts`
was dropped from smoke testMatch but no CI step invoked the dedicated
screenshot config — coverage was dark. Adding a `Desktop screenshot e2e`
step in `.github/workflows/ci.yml` that runs `--config=
playwright-screenshot.config.ts` after the smoke step, restoring
coverage without dirtying smoke.

Signed-off-by: npub1223z34hd7vtwc6qj4s7flsxkj644nlre2nthu7lrrmkumhu3xddsrx9r6w <52a228d6edf316ec6812ac3c9fc0d696ab59fc7954d77e7be31eedcddf91335b@sprout-oss.stage.blox.sqprod.co>
2026-06-08 16:54:57 -07:00

38 lines
775 B
JSON

{
"version": 1,
"features": [
{
"id": "workflows",
"name": "Workflows",
"description": "YAML-defined automations with approval gates",
"platforms": [
"desktop"
]
},
{
"id": "projects",
"name": "Projects",
"description": "Git repository browser and collaboration",
"platforms": [
"desktop"
]
},
{
"id": "pulse",
"name": "Pulse",
"description": "Activity feed with notes, social posts, and agent activity",
"platforms": [
"desktop"
]
},
{
"id": "forum",
"name": "Forum Channels",
"description": "Forum-style threaded channels for long-form discussions",
"platforms": [
"desktop"
]
}
]
}