|
Some checks are pending
Block internal-flavored paths / Block forbidden paths (pull_request) Successful in 26s
CI / Detect changes (pull_request) Successful in 1m18s
E2E API Smoke Test / detect-changes (pull_request) Successful in 55s
Harness Replays / detect-changes (pull_request) Successful in 22s
publish-runtime-autobump / bump-and-tag (pull_request) Has been skipped
Handlers Postgres Integration / detect-changes (pull_request) Successful in 57s
Secret scan / Scan diff for credential-shaped strings (pull_request) Successful in 26s
gate-check-v3 / gate-check (pull_request) Successful in 13s
publish-runtime-autobump / pr-validate (pull_request) Successful in 1m0s
Runtime PR-Built Compatibility / detect-changes (pull_request) Successful in 54s
qa-review / approved (pull_request) Successful in 24s
security-review / approved (pull_request) Successful in 23s
lint-required-no-paths / lint-required-no-paths (pull_request) Successful in 1m40s
sop-checklist / na-declarations (pull_request) awaiting /sop-n/a declaration for: qa-review, security-review
sop-tier-check / tier-check (pull_request) Successful in 24s
CI / Platform (Go) (pull_request) Successful in 10s
CI / Shellcheck (E2E scripts) (pull_request) Successful in 9s
E2E API Smoke Test / E2E API Smoke Test (pull_request) Successful in 11s
Harness Replays / Harness Replays (pull_request) Successful in 11s
Handlers Postgres Integration / Handlers Postgres Integration (pull_request) Successful in 15s
Runtime PR-Built Compatibility / PR-built wheel + import smoke (pull_request) Successful in 3m25s
sop-checklist / all-items-acked (pull_request) All SOP items acknowledged
CI / Python Lint & Test (pull_request) Successful in 7m50s
CI / Canvas (Next.js) (pull_request) Successful in 17m37s
audit-force-merge / audit (pull_request) Successful in 29s
CI / Canvas Deploy Reminder (pull_request) Has been skipped
CI / all-required (pull_request) Successful in 4s
MobileChat previously only read from the canvas store's agentMessages
buffer, which is populated by desktop ChatTab (never runs on mobile) and
live WebSocket events (only new messages). Opening chat on a phone/WebView
showed an empty state even when history existed.
Changes:
- Fetch history via GET /workspaces/{id}/chat-history?limit=50 on mount
- Show loading spinner during fetch, surface errors with Retry button
- Merge live agentMessages from the store while the panel is open
- Subscribe to store updates after bootstrap so new pushes are visible
- Fix TypeScript strict-mode issue in effect cleanup (Promise vs. sync fn)
Test coverage (canvas):
- New MobileChat history tests: mount call, loading state, empty state,
message rendering, user role mapping, error state, retry button flow
- All 26 MobileChat tests pass; 3293 total canvas tests pass
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
||
|---|---|---|
| .. | ||
| e2e | ||
| public | ||
| src | ||
| .dockerignore | ||
| .env.example | ||
| .gitignore | ||
| components.json | ||
| Dockerfile | ||
| next.config.ts | ||
| package-lock.json | ||
| package.json | ||
| playwright.config.ts | ||
| playwright.staging.config.ts | ||
| postcss.config.js | ||
| tsconfig.json | ||
| vitest.config.ts | ||