Commit Graph
40 Commits
Author SHA1 Message Date
hyper 2ed69d744a chore(dev): Add dev runner and split dev ports
Add dev:web (rsbuild) and dev:cli (tttk serve ./content), with dev
running both via scripts/dev.mjs, which shuts both down when either
exits. Also add tttk:inspect for --inspect debugging.

Both servers previously defaulted to port 3000, so the CLI could not
bind while the web dev server was running and the proxy targeted
itself. Pin the web dev server to 5173; the CLI keeps 3000 to match
the proxy. Document the two-process setup and inspector debugging in
docs/development.md.
2026-09-12 20:11:34 +08:00
hypercross d8ccaecade chore(skill): Own tttk-authoring in the repo
Move the skill to .agents/skills/tttk-authoring and point gen:skill-reference at it. Activate it by symlinking ~/.agents/skills/tttk-authoring to the in-repo copy.

Extend the reference drift guard to cover the skill copy now that it is versioned, and document activation in docs/development.md.
2026-09-12 17:19:38 +08:00
hypercross 6d94a99b42 docs(skill): Generate the tttk reference catalog
Enrich known.ts with element/role details, inline specs, and dice notation, and render them from reference.ts. Add gen:skill-reference and ~ expansion in --out so the skill copy can be regenerated.

The skill's reference.md is now generated; its extra authoring content moved to layout.md, yaml-tag.md, csv.md, and markdown.md.
2026-09-12 17:13:42 +08:00
hypercross 71542e7453 feat(cli): Complete the check rule catalog
Add D002 (malformed attribute blocks), R004 (skipped declare rows), and V001-V005 (CSV data files). CSV checks run once per referenced file and also cover inline spark-table bodies.

Generate docs/reference.md from the known.ts catalog via npm run gen:reference, and add drift guards asserting the catalog matches the customElement call sites and the committed reference.
2026-09-12 17:01:49 +08:00
hypercross 2187b7ed82 feat: implement journal stream via Shared Worker
Move MQTT connection and message log management to a Shared Worker
using Comlink. This allows multiple browser tabs to share a single
connection and synchronized state.
2026-07-12 10:08:14 +08:00
hyper 3a20e9558b chore: Prepare package for npm publication 2026-07-09 16:23:40 +08:00
hyper 06c3916a95 feat: rename project to TTTK
- Update package name and CLI binary to 'tttk'
- Revise documentation to reflect new name
- Add default serve behavior when no subcommand is given
- Add directory existence check in serve command
- Refactor inline comments to Chinese
2026-07-09 14:14:45 +08:00
hypercross e0c3b8f4a0 feat: add bundle analysis support
Add `webpack-bundle-analyzer` and a new `analyze` script to allow
visualizing bundle composition via `npm run analyze`.
2026-07-08 15:16:12 +08:00
hypercross d95615f210 refactor: remove token and token-viewer components
Remove the `md-token` and `md-token-viewer` components along with their
associated 3D generation and image tracing utilities. Update
documentation and project metadata to reflect these changes and rename
the project title to "Tabletop Tools".
2026-07-08 15:09:22 +08:00
hypercross b54f7ab1fa chore: add uuid dependency 2026-07-08 11:48:25 +08:00
hypercross 98c4a195e8 refactor: replace websocket-stream with native ws utility
Remove the `websocket-stream` dependency in favor of
`createWebSocketStream`
from the `ws` package. This simplifies the MQTT broker setup in the
journal server and removes unnecessary transitive dependencies.

Also improve the JournalPanel UI with smoother transitions and better
visibility handling.
2026-07-06 15:53:52 +08:00
hypercross 34d647d611 feat: implement websocket-stream for journal server
Integrate `websocket-stream` to handle MQTT broker upgrades in the
CLI and add granular connection status tracking to the UI.

- Add `websocket-stream` dependency
- Update CLI to use `websocket-stream` for socket upgrades
- Enhance `journalStream` store with `connectionStatus` and
  `connectionError` states
- Add visual connection status indicators to `App` and `JournalPanel`
2026-07-06 15:38:28 +08:00
hypercross 862ba9c01b feat: simplify journal connection via WebSocket upgrade
Refactor the journal server to run over WebSockets on the existing
HTTP server instead of a separate MQTT TCP port. This removes the need
for a separate port configuration and simplifies the connection flow
by auto-connecting to the current host.

- Remove `--mqtt-port` CLI option
- Attach Aedes broker to the HTTP server via WebSocket upgrade
- Update UI to remove manual broker URL and player name inputs
- Add "Content Source" access from the sidebar
- Update JournalPanel to auto-connect to the local server
2026-07-06 15:30:21 +08:00
hypercross 21f8fbcd0b feat: add MQTT journal server for session persistence
Implement a journal server that uses an Aedes MQTT broker to
persist stream messages to JSONL files and manage session metadata
via a manifest.

- Add `aedes`, `mqtt`, and `zod` dependencies
- Implement `createJournalServer` in `src/cli/journal.ts`
- Integrate journal server into the `serve` command
- Add `--mqtt-port` option to the CLI
- Add session lifecycle management (create, update, delete) via
  retained MQTT topics
2026-07-06 14:19:16 +08:00
hyper 42c7c9a26e feat(editor): Add dnd reordering and layer add/remove 2026-06-30 20:55:13 +08:00
hyper 936ccb7433 chore(deps): add husky dev dependency
Update prepare script to use npx husky
2026-06-26 11:33:28 +08:00
hyper 1b51370ad0 feat(husky): Add post-merge hook and prepare script 2026-06-26 11:22:15 +08:00
hypercross d099cf5758 refactor: use npm yarn-spinner-loader package 2026-04-14 20:26:56 +08:00
hypercross 163aa8c783 refactor: move yarn-spinner-loader to external dependency 2026-04-14 16:35:18 +08:00
hyper 25d95e6990 refactor: remove inline-schema 2026-04-06 17:47:33 +08:00
hyper 12c2473aeb refactor: swithc to npm link based dependency 2026-04-02 21:09:42 +08:00
hyper eb1388c6bc refactor: add inline-schema 2026-03-31 15:40:06 +08:00
hypercross 62aff91a86 fix: mcp 2026-03-18 12:08:28 +08:00
hyper 834db72ec4 feat: mcp server? 2026-03-17 20:01:04 +08:00
hyper 2476659fc6 refactor: stl->3mf 2026-03-15 23:17:16 +08:00
hypercross 8c33dc282b feat: md-token 2026-03-15 19:01:39 +08:00
hypercross 92dac64326 chore: test suite 2026-03-15 11:44:23 +08:00
hypercross 02aad0415c fix: js-yaml types 2026-03-03 20:43:32 +08:00
hypercross 13007c8fa4 feat: gfm heading id 2026-03-02 13:43:10 +08:00
hypercross b737e9f4ea feat: mermaid 2026-03-02 11:03:51 +08:00
hypercross 4eaa888198 feat: marked-alert 2026-02-28 13:58:51 +08:00
hypercross 19256b501f feat: yaml tag block 2026-02-28 11:44:42 +08:00
hypercross 2b5bcfff93 chore: remove html2canvas/jspdf 2026-02-27 23:46:34 +08:00
hyper f32bbe59b3 feat: jsPDF 2026-02-27 20:27:26 +08:00
hypercross 3efc3b59ad fix: cli path 2026-02-26 16:06:24 +08:00
hypercross 8d7f745df2 feat: ai's attempt 2026-02-26 13:35:09 +08:00
hypercross 1b0f1a2269 fix: postcss 2026-02-26 08:14:42 +08:00
hypercross 795c2c4389 fix: solid-element 2026-02-26 00:47:26 +08:00
hypercross 8dd0374d59 fix: babel 2026-02-26 00:27:38 +08:00
hypercross 3c9cf552e5 feat: ai's first take... 2026-02-26 00:17:23 +08:00