Skip to content

Fix local file:// support and add project grouping by gizmo_id - #1

Open
febrile42 wants to merge 2 commits into
DarkIlluminatus:mainfrom
febrile42:fix/local-file-support-and-project-grouping
Open

Fix local file:// support and add project grouping by gizmo_id#1
febrile42 wants to merge 2 commits into
DarkIlluminatus:mainfrom
febrile42:fix/local-file-support-and-project-grouping

Conversation

@febrile42

@febrile42 febrile42 commented Mar 11, 2026

Copy link
Copy Markdown

Summary

  • Closes:: bug: local file:// CORS breakage + feat: gizmo_id grouping #2
  • Bug fix: The original type="module" + import from 'https://cdn.skypack.dev/...' setup is blocked by CORS when index.html is opened as a file:// URL, making the app completely non-functional for local use. Replaced with regular <script src> tags from cdn.jsdelivr.net with integrity= (SHA-384 SRI) hashes — plain script tags are not subject to the same CORS restrictions as ES module imports.
  • Feature: Conversations with a gizmo_id field are grouped into native collapsible <details> sections at the top of the results (sorted alphabetically by ID, newest-first within each group). Ungrouped conversations appear below under "Other Conversations". If no gizmo_id fields exist, the display is identical to before.

Test plan

  • Clone repo, open index.html directly as file:// in Chrome and Firefox — app loads and works
  • Load a conversations.json — conversations display correctly
  • Download All JSON ZIP and Download All Text ZIP produce correct output
  • Individual View / Download JSON / Download Text buttons work
  • Load a file with gizmo_id fields — project sections appear at top, collapsible on click
  • Load a file with no gizmo_id fields — flat list, identical to original behavior

🤖 Generated with Claude Code

febrile42 and others added 2 commits March 10, 2026 21:02
…support

The original type="module" + import-from-Skypack setup is blocked by
CORS when index.html is opened as a file:// URL, making the app fully
non-functional when double-clicked locally.

Replace with regular <script src> tags from cdn.jsdelivr.net with
SHA-384 integrity= hashes. Plain script tags are not subject to the
same CORS restrictions as ES module imports, so the page now works
from file:// without running a local server. Applies to both index.html
and betas/index.html.

Also adds .gitignore to exclude any vendor/ directory.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Conversations with a gizmo_id field are grouped into native <details>
sections at the top of the results, sorted alphabetically by ID with
conversations newest-first within each group. Conversations without a
gizmo_id appear below under an "Other Conversations" heading (only
shown when project sections also exist). If no gizmo_id fields are
present the display is identical to before.

Extracts createConversationItem() helper to eliminate duplication
between the project-grouped and ungrouped rendering paths.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant