Context
Studio currently imports local journey files through the file picker or drag-and-drop. Users cannot open supported journey files directly from the operating system file manager.
Requested behavior
Allow the installed Studio PWA to receive supported journey files through the operating system file handling mechanism.
- When Studio is not running, opening a supported file starts Studio and imports it.
- When Studio is already running, opening a supported file imports it as one additional journey without replacing or resetting existing journeys.
- Supported formats are GPX, KML, GeoJSON, and JSON.
Acceptance criteria
- The PWA declares file handlers for GPX, KML, GeoJSON, and JSON files.
- Opening a supported file when Studio is closed starts the application and imports one journey.
- Opening a supported file when Studio is already running adds one journey to the existing journeys.
- Existing journeys remain unchanged.
- The existing validation, duplicate detection, status display, notifications, and error diagnostics are reused.
- Unsupported files are rejected using the existing import error behavior.
- Automated tests cover both application-start and already-running scenarios.
Notes or questions
- File handling depends on browser and installed-PWA support for the File Handling API.
- The implementation should reuse the existing local-file import pipeline.
Technical notes
- Add the appropriate
file_handlers declaration to the web app manifest.
- Register a
launchQueue consumer during application startup.
- Convert received
FileSystemFileHandle objects to File objects and pass them to the existing file-processing logic.
Context
Studio currently imports local journey files through the file picker or drag-and-drop. Users cannot open supported journey files directly from the operating system file manager.
Requested behavior
Allow the installed Studio PWA to receive supported journey files through the operating system file handling mechanism.
Acceptance criteria
Notes or questions
Technical notes
file_handlersdeclaration to the web app manifest.launchQueueconsumer during application startup.FileSystemFileHandleobjects toFileobjects and pass them to the existing file-processing logic.