Repository navigation
Simple Format import: words in the speaker name override the role in parentheses (#90) - #130
Conversation
…he role in parentheses
|
plan — Since #77 a custom role in the brackets already wins, so only the built-in half of #90 is left: when the bracket names no custom role, detection runs on the whole line and a keyword in the name ( Open questions (defaults apply if you just add
|
|
plan gate — Approved by @ShuhaoZQGG in chat. Q1 and Q2 take the plan's defaults (yes to both). |
|
plan gate — The first build run (42438263153) failed at Install, before Claude started. When this PR was retargeted to dev, GitHub kept its merge ref on the old base, so the run used the old workflow (ubuntu-latest, which Playwright 1.58 doesn't support). The branch is now updated with dev, and plan:approved was re-added to start the build again. |
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
oracle —
|
…r name Simple Format detected the role from the whole line, so 'Tim Timer (Standard Speech)' became Short Roles. Try the bracket's own keywords first, via a new optional fallback on detectRoleFromText (default unchanged for other callers), then fall back to whole-line detection as before. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
implement — |
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
verify — npm test (2225 pass), test:e2e (42 pass), test:specs, check-oracle, build all pass; CI |
|
zoom — Waiting. The 17:00 run deployed this branch (0ba1f1c) to dev (version c80dca2b) and started Zoom, but the Mac's screen was locked, so no |
…e-wins # Conflicts: # e2e/zoom-client/INDEX.md
Closes #90
Why
In Simple Format import the role was detected from the whole line, so keywords in the speaker's name beat the role written in parentheses:
Tim Timer (Standard Speech)imported as Short Roles ("timer"), andDominique - General Evaluation (Table Topics)as General Evaluation. #77 already made a custom role in the bracket win; this is the built-in half.What changes
detectRoleFromTexttakes an optionalfallback(default'Standard Speech', so every other caller is unchanged); the parser passesnullto fall through to the whole line.Dominique - Table Topics Master (Speaker 1)becomes Standard Speech.agenda-importgains IM-05 and aneedsline (built-in roles not hidden).Security
None. Client-side parsing only.
Production impact
The shared parser runs in both the Zoom app and the web app; after release, master users get bracket-first detection on Simple Format import. No flags, no migration. Rollback is a revert.
Testing
npm test: 2225 pass (verify station); CItestpass on cf14fc5npm run test:e2e: 42 pass (verify station), incl. "the bracket's built-in role beats the name (Simple Format import: words in the speaker name override the role in parentheses #90)"npm run test:specs: valid (7 specs).factory/oracles/90.json—simpleFormatParser.test.jsAC-1/AC-2 fail on the old parser, AC-3/AC-4 guard current behaviour;e2e/zoom.timer-flow.spec.jsSimple Format import: words in the speaker name override the role in parentheses #90 testEvidence (real Zoom client)
Run 2026-11-11 16:39–16:51 EST, Zoom 7.2.5 on macOS 26.7.2, dev version
c80dca2b(this branch @ 0ba1f1c, committed vars). Specagenda-import, IM-01…IM-05.agenda_imported21:44:27 UTC fromzoom.timer-dev.simple-tech.app:import_type: bulk,items_count: 6,custom_role_count: 4.Tim Timer (Standard Speech)→ Standard Speech,Dominique - General Evaluation (Table Topics)→ Table Topics ("Imported 2 speaker(s)"; PostHogagenda_importedbulk/2/0). The Live-tab half could not be checked, see below.Not verified
LiveTab.jsxbehaviour from e876ca8, not this diff. The plain-browser Playwright test covers it. Specneedsnow says built-ins must be visible.setVirtualBackgroundcalls and all localStorage reads: Zoom's webview inspector is off on this Mac, so on-screen rows, the request log and PostHog stood in.Look here first
fallbackparameter (default unchanged)