Repository navigation
Conversation
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Also adds @types/node and "node" in tsconfig types for node:fs/node:url in tests. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…sult types Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…-boundary tests Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…ife events Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…nd single-flight save Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…ror panels Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Remove aria-live from the whole section; add one polite status line that changes only at coarse milestones. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…ntry points Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…errors on event read - extract toWorkerError; non-UploadError failures (OOM, unreadable file) are no longer "corrupt-file" - loadOwnEvents maps expired JWTs to session-expired like the upsert - worker-failed hint no longer promises a Try again button - guard test: ErrorPanel never shows the raw error message Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…le wording Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…ght and retention cutoff Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
This branch was successfully deployed
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.
Summary
Moves the Apple Health upload into the new app (
/app/upload), perdocs/superpowers/specs/2026-10-04-upload-flow-design.md.web/src/lib/health/):parseExportturns UTF-8 chunks into per-day running totals (memory grows with days, not records);fileToChunksreadsexport.xmlor streams the health XML out ofexport.zipwithfflate(ZIP64 and data-descriptor ZIPs covered by fixtures). A parity test extracts the classicparseHealthXMLfromindex.htmland asserts identicaldaily/summary.daily/summaryand keeping the user's existing life events; never reads the demo row. Only aggregated daily numbers are stored; raw records never leave the browser./upload.Not verified yet: a real export in a real browser
Please run the acceptance checklist on the Vercel preview before merging (plan Task 12):
export.zip(and the unzippedexport.xml) at/app/upload: the tab stays responsive, progress moves, and the days/averages match the classic app..txtfile, an empty file, and a ZIP with noexport.xmleach give a specific message; Cancel mid-parse returns to the drop zone./still works. If a large export fails, note the browser and tab memory.Known follow-ups (deferred, not in this PR)
</HealthData>is rejected as corrupt (Apple writes a single newline).Co-Authored-By(squash-merge fixes it).Test plan
python -m pytest -q(56 passed)npm --prefix web test(225 passed),lint,typecheck,build(separateparse.worker-*.jschunk emitted under/app/assets)🤖 Generated with Claude Code