democratizedspace / democratizedspace/dspace
v3.1: Enable token.place chat provider + add E2E coverage and release gates
- Dominant language
- TypeScript
- Stars
- 4
- Forks
- 2
- Avg merge
- 5h 34m
- Merged PRs (30d)
- 4
Description
### Goal
Ship **v3.1** with token.place fully integrated as an **opt-in chat provider**, with clear UX, safe failure modes, and automated E2E coverage. v3 must remain **OpenAI-only by default**.
### Scope
- Implement / finalize **token.place API v1** (or confirm it’s live + stable).
- Wire up dspace **provider selection** (OpenAI default, token.place opt-in).
- Ensure **graceful failover / error handling** (no broken UI, clear user-facing errors).
- Add **Playwright E2E** coverage for token.place flows.
- Update **docs + changelog** to match shipped behavior (no drift).
### Acceptance criteria
- token.place is **disabled by default** in v3.1 builds unless explicitly enabled (env flag or game state).
- When enabled, token.place chat:
- sends/receives messages successfully in staging,
- handles outages/timeouts/4xx/5xx with the same “polite failure” UX as OpenAI,
- never leaves the chat UI in a stuck loading state.
- E2E tests cover:
- OpenAI default path still works,
- token.place enabled path works end-to-end,
- token.place disabled path shows the correct “disabled” messaging,
- at least one failure-mode test (simulate 5xx or network failure).
- Docs are aligned with reality and test-backed (extend/keep `qaDocsContentAlignment.test.ts` expectations as needed).
- QA checklist updates: add v3.1 gates under `docs/qa/v3.md` v3.1 section (or a dedicated v3.1 checklist file) and mark token.place items as required for release.
### Implementation notes / pointers
- token.place doc describes the intended behavior and flags: `frontend/src/pages/docs/md/token-place.md`
- Existing doc alignment checks live in: `tests/qaDocsContentAlignment.test.ts`
- Token.place integration mentions: `frontend/src/utils/tokenPlace.js` and chat UI components per docs.
### Verification commands
- `npm run test:pr`
- Playwright token.place suite(s): `npm run test:e2e` (or grouped runner)
- Staging smoke: `/chat` send/receive on OpenAI default + token.place enabled.
### Out of scope
- Any changes to v3.0 release behavior (token.place remains deferred in v3.0).
- Non-chat token.place features (if any) unless required for chat stability.
Contributor guide
Research direction
Start with frontend/src/pages/docs/md/token-place.md and frontend/src/utils/tokenPlace.js to trace the documented flags and existing integration, then inspect the chat UI components they reference. Run tests/qaDocsContentAlignment.test.ts and npm run test:pr before adding the required Playwright coverage via npm run test:e2e. Done means the documented defaults, enabled and disabled flows, failure handling, and docs/qa/v3.md release gates all match the acceptance criteria.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- playwright, typescript
- Domain
- api, documentation, frontend, release, testing
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100