First wave of the canvas-as-product upgrade. All additive; no existing scene changed.
What's in
Agent scene (src/scenes/Agent.tsx): chat surface backed by a per-tenant, per-user local memory (src/lib/agentMemory.ts). Three intents:
take me to ... → routes to Mission / Runs / Studio / Settings / Hubs
remember: ... → retains a fact (world/experience/opinion), recallable later
start a ... → pre-fills the Studio Intake with the topic and opens it
Hubs scene (src/scenes/Hubs.tsx): four department lenses (People, Finance, Procurement, IT) over the same EA2 catalog. Entering a hub focuses Mission Control on its scenarios.
Three view-as personas (src/data/personas.ts): CEO, Head of People, Head of IT. Switcher lives in the Agent side-panel; flipping persona re-signs in via dev-login under that email so the live console reflects the seat.
Real SSO parity with dev.flow-master.ai (currently uses the existing dev-login path).
Production hardening of the dead-login button.
Process Studio parity with the dev Process Creation Wizard.
Forked PI-coding-agent integration as the agent's brain (currently rules-based, offline).
Removing remaining "demo" copy in Settings.
Geo-attendance + chat module.
Each of these will land as its own focused PR.
First wave of the canvas-as-product upgrade. All additive; no existing scene changed.
## What's in
- **Agent scene** (`src/scenes/Agent.tsx`): chat surface backed by a per-tenant, per-user local memory (`src/lib/agentMemory.ts`). Three intents:
- `take me to ...` → routes to Mission / Runs / Studio / Settings / Hubs
- `remember: ...` → retains a fact (world/experience/opinion), recallable later
- `start a ...` → pre-fills the Studio Intake with the topic and opens it
- **Hubs scene** (`src/scenes/Hubs.tsx`): four department lenses (People, Finance, Procurement, IT) over the same EA2 catalog. Entering a hub focuses Mission Control on its scenarios.
- **Three view-as personas** (`src/data/personas.ts`): CEO, Head of People, Head of IT. Switcher lives in the Agent side-panel; flipping persona re-signs in via dev-login under that email so the live console reflects the seat.
- **Store**: `SceneId` extended with `agent` + `hubs`; persisted `hub` + `personaId`.
- **App shell**: two new top-bar tabs.
## Verification
- `tsc -b` → exit 0
- `vite build` → exit 0, 878 kB → 237 kB gzipped
## Out of scope (next waves)
- Real SSO parity with dev.flow-master.ai (currently uses the existing dev-login path).
- Production hardening of the dead-login button.
- Process Studio parity with the dev Process Creation Wizard.
- Forked PI-coding-agent integration as the agent's brain (currently rules-based, offline).
- Removing remaining "demo" copy in Settings.
- Geo-attendance + chat module.
Each of these will land as its own focused PR.
- New Agent scene (src/scenes/Agent.tsx): chat surface backed by per-tenant
local memory (src/lib/agentMemory.ts). Recognises navigation intents
("take me to ..."), retain intents ("remember: ..."), and process-start
intents ("start a ...") which pre-fill the Studio Intake step.
- New Hubs scene (src/scenes/Hubs.tsx): department lenses over the same
EA2 catalog (People, Finance, Procurement, IT). Each hub funnels into
Mission Control on its matching scenario.
- Three view-as personas in src/data/personas.ts (CEO, Head of People,
Head of IT). Persona switcher lives in the Agent panel; flipping persona
re-signs in via dev-login under that email.
- Store: SceneId extended with 'agent' + 'hubs'; persisted hub + personaId.
- App shell: two new top-bar tabs (Hubs, Agent) routed to the new scenes.
- CSS: Agent shell, persona cards, Hubs grid, hub mark variants.
- Type-check + production build both pass.
shad
merged commit 21031ef1c4 into main2026-06-14 20:38:33 +00:00
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
First wave of the canvas-as-product upgrade. All additive; no existing scene changed.
What's in
src/scenes/Agent.tsx): chat surface backed by a per-tenant, per-user local memory (src/lib/agentMemory.ts). Three intents:take me to ...→ routes to Mission / Runs / Studio / Settings / Hubsremember: ...→ retains a fact (world/experience/opinion), recallable laterstart a ...→ pre-fills the Studio Intake with the topic and opens itsrc/scenes/Hubs.tsx): four department lenses (People, Finance, Procurement, IT) over the same EA2 catalog. Entering a hub focuses Mission Control on its scenarios.src/data/personas.ts): CEO, Head of People, Head of IT. Switcher lives in the Agent side-panel; flipping persona re-signs in via dev-login under that email so the live console reflects the seat.SceneIdextended withagent+hubs; persistedhub+personaId.Verification
tsc -b→ exit 0vite build→ exit 0, 878 kB → 237 kB gzippedOut of scope (next waves)
Each of these will land as its own focused PR.
- New Agent scene (src/scenes/Agent.tsx): chat surface backed by per-tenant local memory (src/lib/agentMemory.ts). Recognises navigation intents ("take me to ..."), retain intents ("remember: ..."), and process-start intents ("start a ...") which pre-fill the Studio Intake step. - New Hubs scene (src/scenes/Hubs.tsx): department lenses over the same EA2 catalog (People, Finance, Procurement, IT). Each hub funnels into Mission Control on its matching scenario. - Three view-as personas in src/data/personas.ts (CEO, Head of People, Head of IT). Persona switcher lives in the Agent panel; flipping persona re-signs in via dev-login under that email. - Store: SceneId extended with 'agent' + 'hubs'; persisted hub + personaId. - App shell: two new top-bar tabs (Hubs, Agent) routed to the new scenes. - CSS: Agent shell, persona cards, Hubs grid, hub mark variants. - Type-check + production build both pass.