Repository navigation
calendar: hand errors and sync outcomes to a user-testing log hook - #183
Merged
Merged
Conversation
A drive app's errors stay inside its sandboxed frame: the host shows them there and reports nothing, so in remote user testing nobody but the tester sees them. report.ts hands each failure (message, stack, the banner's problem kind and status), each finished sync (counts, and ids and reasons of unreadable events) and anything uncaught to globalThis.__USERTEST_REPORT__ when it exists. No titles or other row content are handed over. The app still makes no network request of its own; build.test.ts keeps checking the bundle for fetch(. The hook comes from a prelude that only the user-testing catalog build (usertest/catalog.mjs) prepends, so a published build reports nothing. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
michielbdejong
pushed a commit
that referenced
this pull request
Sep 29, 2026
main gained calendar changes after this branch generated apps/calendar/0.1.0/ui.js (#181 unreadable Google events, #183 the user-testing log hook, #184 all-day events with end == start, #187 "Jump to latest event"). 0.1.0 is not on main yet, so its bytes and catalog integrity are regenerated with `apps.mjs write calendar`. Co-Authored-By: Claude Opus 5.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.
In remote user testing (see #182), a drive app's errors are invisible to anyone but the tester. They stay inside the app's sandboxed frame: the host (
AppFrame.tsxat the pin) shows them and reports nothing. The data-browser's own errors do reach the test collector, through atomic-server'sSENTRY_DSN_BROWSER, but an app's errors do not. The first session hit exactly this: "Something went wrong while syncing", visible only on the tester's screen (fixed in #181).Change
integrations/calendar/app/report.tshands entries toglobalThis.__USERTEST_REPORT__when it exists:warnwhen there are any);No event titles, descriptions or other row content are handed over.
The app still has no network access of its own
build.test.tschecks that the bundle contains nofetch(, and it still passes. The hook is defined by a prelude that only the user-testing catalog build prepends (usertest/catalog.mjs, follow-up on #182). A published build has no prelude, soreportis a no-op there.The longer-term fix is in the host: forward
__atomic_plugin_error(and a log channel) to the host's own Sentry. That would cover every app without per-app code. That is an atomic-server change and is not proposed here yet.Checks
node integrations/tooling/run-lane.mjs calendar --tier typecheck: passednode integrations/tooling/run-lane.mjs calendar --tier unit: 97 passed, includingreport.test.ts(no hook: nothing; hook: one entry; a throwing hook never throws) and the unchangedbuild.test.tsbundle checksoxlintandoxfmt --checkoverintegrations: clean🤖 Generated with Claude Code