No description
The Backstage rebuild's first three resource configs. /admin/dispatches, /admin/roadmap, and /admin/events now resolve through the dynamic route with full list views, edit panels, and the publish/archive actions. - src/admin/resources/dispatches.ts — kind/status/author/excerpt/body fields, embedded pulse sub-form (pulse_question + multi-text options + opens/closes datetimes), publish/archive actions, notifyCount on drafts so the sidebar lights up terracotta until they ship. - src/admin/resources/roadmap.ts — title/description/status/target/ display_order/metadata_text plus a multi-select-async for attributed members. ops.update writes via setRoadmapAttributions() after the basic save so the pivot table stays in sync. - src/admin/resources/events.ts — full event fields; ops.create auto-generates a unique slug from the title when blank. - src/admin/embeds/PulseSubForm.astro — reads the dispatch's current pulse via getPulseById(), renders question + options + opens/closes. Pulses follow their parent dispatch's lifecycle (draft → open on publish, → closed on archive); no status field of their own. - src/admin/components/ResourceEditPanel.astro — dispatches on embed.component, renders PulseSubForm for 'pulse-sub-form'. - src/admin/resource-types.ts — renamed column .valueOf to .value (collision with Object.prototype.valueOf was breaking TS structural matching); OpContext now optionally carries the raw FormData so resources with sub-forms can read embed fields. - src/pages/admin/[resource].astro — passes formData into opCtx. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> |
||
|---|---|---|
| .claude | ||
| content | ||
| design | ||
| migrations | ||
| public | ||
| scripts | ||
| src | ||
| tests | ||
| .env.example | ||
| .gitignore | ||
| astro.config.mjs | ||
| CLAUDE.md | ||
| DECISIONS.md | ||
| HANDOVER.md | ||
| KNOWN_ISSUES.md | ||
| package.json | ||
| pnpm-lock.yaml | ||
| SPEC.md | ||
| todo.md | ||
| tsconfig.json | ||
| vitest.config.ts | ||