fix(core): detect homepage cards for events reusing another meeting code - #35
Open
onevcat wants to merge 3 commits into
Open
fix(core): detect homepage cards for events reusing another meeting code#35onevcat wants to merge 3 commits into
onevcat wants to merge 3 commits into
Conversation
Events that reuse a meeting code created for another event (Calendar shows the "this meeting code belongs to another event" banner) render on the redesigned Meet homepage with a bare calendar event id — no `_<timestamp>Z` instance suffix — so the v2 parser dropped them and such meetings never reached the scheduler or the tray. Accept bare-event-id cards as a fallback: the begin time is recovered from the localized label text (24h, trailing AM/PM including the narrow no-break space ICU emits, and CJK prefix meridiems), with the calendar date anchored to sibling instance-id cards since the homepage renders a single day at a time. Cards without a parseable time range stay excluded to keep unrelated buttons out. Card lookup helpers used by the click-to-join flow accept bare ids as well, so both the Tauri app and the extension pick up the fix. Verified end-to-end against a live reproduction: parse, tray display, and auto-join via card click all confirmed on a reused-code meeting. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
… anchors
Two review findings on the bare-event-id card fallback:
- CLDR formats Korean times with a prefix meridiem ("오후 5:15"), which
the meridiem resolver did not recognize, so afternoon meetings parsed
as early morning and were dropped as expired. Add 오전/오후 to the
prefix-meridiem markers.
- The date anchor was chosen before visibility filtering, so a hidden
stale instance card from another day could misdate visible bare-id
cards. Resolve visibility once per card and only let visible
instance-id cards anchor the date.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Confirms on real DOM that the homepage renders Korean times exactly as
CLDR predicts ("오후 5:45 – 오후 6:45", prefix meridiem, plain space).
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
A user reported a scheduled meeting with a Meet URL that never appeared in the MeetCat tray, even though Google Meet's homepage displayed it. The affected event showed Calendar's "this meeting code belongs to another event" info banner (この会議コードは別の予定のものです).
Root cause
Confirmed against a live reproduction (event duplicated from another event so it reuses that event's meeting code): the redesigned Meet homepage renders such cards with a bare calendar event id (e.g.
3n4i5i5mf9v3lqf03ipnct6g4a) instead of the usual instance id with a_<YYYYMMDD>T<HHMMSS>Zsuffix. The v2 parser requires that suffix (CALENDAR_INSTANCE_ID_PATTERN), sofindCalendarCardsdropped the card and the meeting never reached the scheduler, the tray, or auto-join. These cards also carry no machine-readable timestamp at all — the only time source is the localized label text (e.g.17:15 – 18:15).Fix
BARE_EVENT_ID_PATTERNand accept bare-id cards infindCalendarCards/parseCalendarCard.extractBeginClockMinutes: 24h ranges, trailing AM/PM (including the U+202F narrow no-break space ICU emits), and prefix meridiems (午前/午後, 上午/下午, 오전/오후 — CLDR formats Korean as오후 5:15).findMeetingCardById/closestCalendarCardso the click-to-join flow works with bare ids. The fix lives in@meetcat/core, so the Tauri app and the Chrome extension both pick it up.Testing
pnpm -r test: all JS/TS suites green (core 253, plus settings/settings-ui/extension/tauri),test:rustgreen.Known limitations
17.15) or non-Latin digits (ar٥:١٥) are not parsed; such bare-id cards are dropped — the same behavior as before this fix, never a wrong-time join.