Repository navigation
[feat] share into the app + open files from the OS (60 Q4) - #431
Merged
Merged
Conversation
- manifest: share_target (POST multipart `files`: images, glb/gltf, tpscene), file_handlers (.tpscene, .glb, .gltf → /), launch_handler focus-existing - static/sw.js: receives the share POST (a static site has no server), parks the files in the `tp-share-inbox` cache and 303s to /?shared=<n>; everything else is still a no-cache passthrough - src/lib/launchInbox.js: reads the inbox ONCE (cache deleted, ?shared= stripped) and takes launchQueue file launches; routes .tpscene → open (Sidebar Load path), models → import into the current scene (companions ride along), lone images → Explorer Library + "Show in Library"; waits for the scene group AND the restore-session answer first - autosave: restoreSettled() — resolves once the boot's restore question is answered (no snapshot / non-empty / auto-restored / Restore finished / Dismiss) - tests/unit/launchInbox.test.js (14): manifest keys, the real sw.js in a fake worker scope (park + 303, text-only, replace, passthrough), the worker → app round trip, classifier Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Share POST through the real service worker (image -> Library, .glb -> scene), the restore rule, CDP manifest/installability, launchQueue file launches. Not yet run green: the first run timed out waiting for a slot. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
- a lone shared image no longer pulls in fileHandler (a cold dev-server compile stalled it) - loadExplorer() before importFiles, so the index write cannot replace an unloaded library - a failed route records the error and toasts it; lastLaunch.stage for diagnosis - suite: --ignore-certificate-errors (SW script fetch on the self-signed dev cert), poll with until() instead of an async waitForFunction predicate, wait for the level name Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Collaborator
Author
|
In main via 60-int: released in v1.44.0 (#476). |
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.
Roadmap 60 Q4: share into the app and open files from the OS. (Q3 oEmbed is cloud PR theprototype-app/cloud#111.)
What
share_target(POST multipart to/share-target: images, .glb/.gltf, .tpscene),file_handlers(.tpscene/.glb/.gltf),launch_handlerfocus-existing.tp-share-inboxcache and answered with a 303 to/?shared=<n>. Every other request still goes straight to the network (no shell cache).window.launchQueue):autosave.restoreSettled()), so a Restore cannot wipe a shared model.launch_handlerfor share launches, so a share is always a fresh navigation that the worker sees.Tests
tests/unit/launchInbox.test.js(14): the manifest keys, the real sw.js in a fake worker scope, the inbox round trip, the classifier. Full unit suite 2504/2504; check-ratchet 299/39 = baseline.tests/e2e/launch-inbox.test.cjs: ALL PASS on the dev server (pc slot) and on a built app (serve-build, the app's own SW). It covers:PWA.installis not available headless, so the native install + OS double-click are owner rows.Owner rows (60-int)
Forks (with recommendations, proceeded on) are in the lane's QUESTIONS file: image → Library (Q5 underlay may take it later in
route()), launches wait for the restore answer.🤖 Generated with Claude Code