Skip to content

Em dash cleanup, release-only CI, Sound proposal, Import JS Library#18

Merged
vecnode merged 1 commit into
mainfrom
docs-cleanup-release-ci-import-lib
Jul 11, 2026
Merged

Em dash cleanup, release-only CI, Sound proposal, Import JS Library#18
vecnode merged 1 commit into
mainfrom
docs-cleanup-release-ci-import-lib

Conversation

@vecnode

@vecnode vecnode commented Jul 11, 2026

Copy link
Copy Markdown
Owner

Summary

  • Removed em dashes from all tracked markdown docs (AGENTS.md, CLAUDE.md, README.md, SECURITY.md).
  • CMakeLists.txt: project version set to 0.1.0.
  • .github/workflows/build.yml: now only builds + publishes a GitHub Release when a v*.*.* tag is pushed (or manual dispatch) - no longer runs on every push/PR. Day-to-day rounds stay branch -> PR -> merge with no CI gate. To cut a release: bump the CMake version, git tag vX.Y.Z && git push --tags.
  • docs/proposals/sound-section.md: design proposal for a "Sound" side-panel section (master on/off toggle + 0-1 volume slider over sketch audio output, via a wrapped AudioContext.destination). Proposal only, not implemented - for review before building.
  • Added an "Import JS Library" button to the Libraries panel: opens a native file picker, reads the chosen .js file's text via FileReader, and injects it into the sketch iframe (same sandboxed, opaque-origin context the sketch itself runs in, so no new attack surface). samples/test-import-lib.js is a minimal file to exercise it.

Test plan

  • node --check public/script.js passes.
  • Built and ran locally (build_and_run.bat); loaded the app's loopback URL in a browser to verify the DOM (sidebar renders the new "Import JS Library" button under Libraries).
  • Simulated a file import via a synthetic File/DataTransfer dispatched on the file input: hint text updated to "Imported: test-import-lib.js", terminal logged the import, and the sketch auto-reran.
  • Confirmed the sketch iframe remains a true cross-origin sandbox (SecurityError when trying to reach into it from the parent), i.e. the import path doesn't weaken isolation.
  • The Sound proposal is a design doc only - no runtime behavior to test yet.

Generated with Claude Code

…+ JS import button

- Replace all em dashes with hyphens across tracked markdown docs.
- CMakeLists.txt: set project version to 0.1.0.
- .github/workflows/build.yml: only builds + publishes a GitHub Release when
  a v*.*.* tag is pushed (or manual dispatch) - no longer runs on every
  push/PR. Day-to-day rounds stay branch -> PR -> merge with no CI gate.
  Also packages each platform's output into a zip/tar.gz release asset.
- docs/proposals/sound-section.md: design proposal for a new "Sound" side
  panel section (master on/off + 0-1 volume over sketch audio output via a
  wrapped AudioContext.destination). Not implemented - proposal only.
- Add "Import JS Library" button to the Libraries panel: opens a native file
  picker, reads the chosen .js file's text, and injects it into the sketch
  iframe (same sandboxed, opaque-origin context as the sketch itself).
  samples/test-import-lib.js is a minimal file for exercising the button.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@vecnode vecnode merged commit b04abfa into main Jul 11, 2026
@vecnode vecnode deleted the docs-cleanup-release-ci-import-lib branch July 11, 2026 18:13
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