feat(toolkit): add structured media authoring
ci/woodpecker/push/woodpecker Pipeline was successful
Lint and Build Checks / Lint, Test, and Build (push) Failing after 368h6m42s

This commit is contained in:
2026-06-24 11:29:32 -05:00
parent 52fb52a617
commit 47567589e4
56 changed files with 4222 additions and 686 deletions
+4 -2
View File
@@ -72,6 +72,8 @@ npm run electron:build
Husky increments the patch build version with `npm run version:bump-build`, writes public build metadata to `.env`, then runs `npm run validate:commit` on commit. Validation runs lint, Jest, and the Electron build path. The menu build label uses `version-yyyymmdd-last7commit`.
Before committing or pushing meaningful work, update `src/data/toolkit/changelog.json` with a concise release-ledger entry for the deliverable. Husky updates build metadata automatically, but changelog content is intentionally written by the developer or agent so the in-app Change Log stays useful.
## App Structure
```text
@@ -84,7 +86,7 @@ src/settings/ # Resolution and audio setting definitions
src/hooks/ # Background music and socket connection hooks
src/socket/ # Browser client for Toolkit socket content sync
socket/ # Local Socket.IO Toolkit server
src/data/ # Canonical editable JSON content such as credits
src/data/ # Canonical editable JSON content, typed exports, and Toolkit seed data
src/assets/ # Images, fonts, music, and SCSS entrypoints
electron/ # Electron main and preload source
```
@@ -114,7 +116,7 @@ Toolkit access is intentionally limited:
- socket status must be connected
- socket server runs with `npm run dev:toolkit`
The Toolkit currently contains read-only planning panels for volatile gameplay systems, plus a dedicated Credits tab. Credits content is sourced from `src/data/credits.json` and synchronized through socket events for read, save, change broadcast, and refresh recovery.
The Toolkit contains socket-backed structured forms for volatile gameplay systems, Credits, Images, and Audio. JSON content is sourced from `src/data/toolkit/` and synchronized through socket events for read, save, change broadcast, and refresh recovery. Audio and image uploads are written by the Toolkit socket into `src/assets/music/uploads/` and `src/assets/images/uploads/`, then referenced by the record `fileName` field. Toolkit seed data and app content are exported through `src/data/index.ts` with interfaces from `src/data/types/`.
Socket health check: