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
## Summary
- preserve the user's exact authored message instead of encoding
selected skills or connected apps into visible prompt text
- carry non-app work intent, selected skill, and selected connected app
through the validated run contract and durable Workflow input
- make explicit Documents, Slides, Research, Data, and Media choices
authoritative before keyword-based domain classification
## Architecture
The browser sends an exact text message plus a small validated metadata
envelope. The gateway includes that envelope in its idempotency body,
the agent Worker checkpoints it in Workflow input, and agent-core
converts it into request-scoped domain and capability guidance. App
topology remains project mode; non-app work remains a general project.
## Decisions Made
| Decision | Choice | Alternatives considered | Reasoning |
|---|---|---|---|
| Preserve message identity | Keep user text byte-for-byte and send
selections separately | Strip hidden prefixes at render time | Rendering
would hide persisted corruption and leave routing ambiguous |
| Route non-app surfaces | Validated run intent | More project modes or
keyword-only classification | Intent is per run; project storage
topology is unchanged |
| Selected capabilities | Separate skill and connected-app fields |
Internal prose or slash prefixes | Typed metadata survives retries
without polluting transcript or model task text |
| Classification precedence | App project mode, then explicit run
intent, then keywords | Keywords first | Explicit user choices must win
over incidental words such as “website” in a memo |
## Edge Cases Handled
- signed-out and existing-project prompt handoffs retain intent and
capability selections
- custom user skills use the same bounded selected-skill contract as
bundled skills
- follow-up messages do not accidentally inherit first-run selection
metadata
- selected project or repository import keeps its existing app/general
topology contract
- invalid URL metadata is discarded before request submission and
revalidated at the API boundary
## Verification
- `pnpm lint`
- `pnpm typecheck`
- `pnpm turbo build --force`
- `pnpm deadcode`
- `pnpm architecture:check`
- `pnpm turbo skills:build`
## Production QA after merge
- submit an ordinary Documents request that mentions a website and
confirm a document deliverable, exact visible prompt, and Files surface
- submit ordinary Data and Research requests and confirm no internal
skill prefix appears
- submit a Slides request and confirm the deck skill is loaded from
metadata
- inspect browser console and production deployment health
0 commit comments