No description
  • Go 99.5%
  • Shell 0.5%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Andrew Tyler 3e40db454d feat: cover-gallery render + prune palette to metadata/panes only
- Prune: removed all nodes unrelated to metadata lookup/management or pane
  detection/correction/management — dropped the admin/store/auth/idp/agent/events/
  graphs/discovery/logs endpoint files and the stray studio/cast/rating/conversion
  nodes. Palette is now 160 focused nodes (Comics, Metadata, Metadata pipeline,
  Panes, Pane pipeline, Detection, Dress, Ocr, Library, Librarian, Rules, DB, Flow,
  UI Controls).
- Cover gallery (ui.gallery render, from Sol): Pull loads the library grouped by
  cover-similarity (trade-dress); a scrollable strip of lazy-loaded cover thumbnails;
  click a cover to view it full-size and scroll (wheel/keys) through every book's
  cover art; outputs the selected comic_id.

wails build + node --check clean.

Co-Authored-By: Claude Opus 4.8 via Codex <noreply@openai.com>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-17 21:07:02 -05:00
frontend/dist feat: cover-gallery render + prune palette to metadata/panes only 2026-08-17 21:07:02 -05:00
graphs feat: accurate metadata-lookup + pane-detection graphs (the real flow) 2026-08-17 21:01:56 -05:00
kreeader-server@c2f135e66f scaffold: kreeader-dev design + kreeader-server submodule 2026-08-17 16:35:07 -05:00
nodes feat: cover-gallery render + prune palette to metadata/panes only 2026-08-17 21:07:02 -05:00
.gitignore chore: gitignore the stray root build artifact 2026-08-17 20:13:40 -05:00
.gitmodules scaffold: kreeader-dev design + kreeader-server submodule 2026-08-17 16:35:07 -05:00
app.go feat: buildable Wails skeleton — node registry, executor, API client + device auth 2026-08-17 16:42:51 -05:00
build.sh build: wails.json + build.sh (webkit2_41) — desktop binary builds 2026-08-17 18:46:33 -05:00
dbnodes.go feat(db): wire db.postgres + db.gcd nodes with pure-Go drivers (req 7) 2026-08-17 18:45:38 -05:00
devauth.go feat: buildable Wails skeleton — node registry, executor, API client + device auth 2026-08-17 16:42:51 -05:00
executor.go fix(executor): ui.list/ui.pagepreview emit named outputs (selected comic_id flows) 2026-08-17 20:51:15 -05:00
go.mod feat(db): wire db.postgres + db.gcd nodes with pure-Go drivers (req 7) 2026-08-17 18:45:38 -05:00
go.sum feat(db): wire db.postgres + db.gcd nodes with pure-Go drivers (req 7) 2026-08-17 18:45:38 -05:00
graphs.go feat: import/export + the two seed function-path files 2026-08-17 17:39:10 -05:00
main.go feat: buildable Wails skeleton — node registry, executor, API client + device auth 2026-08-17 16:42:51 -05:00
README.md scaffold: kreeader-dev design + kreeader-server submodule 2026-08-17 16:35:07 -05:00
registry.go feat: terminal display node + clearly-marked API call limits 2026-08-17 16:47:47 -05:00
serverclient.go feat: buildable Wails skeleton — node registry, executor, API client + device auth 2026-08-17 16:42:51 -05:00
settings.go feat(db): wire db.postgres + db.gcd nodes with pure-Go drivers (req 7) 2026-08-17 18:45:38 -05:00
wails.json build: wails.json + build.sh (webkit2_41) — desktop binary builds 2026-08-17 18:46:33 -05:00

kreeader-dev

A Wails desktop app — an n8n / node-red style node-graph editor for defining how kreeader-server handles a book's journey from metadata → panes, end to end. It generalizes kreeader-server's existing graphs system into a visual builder where every kreeader-server capability is a node, paths are drawn and tested live, and the exact function path is import/exportable JSON that later gets implemented into code.

Goals (the spec, verbatim intent)

  1. Nodes for every kreeader-server book-handling function — barcode decode, GCD lookup, ComicVine / Metron / ISBN, cover pHash, the code registry, pane detection, etc.
  2. Draw the discovery + data-usage path end to end, and test it live.
  3. Add new nodes without recompiling — node definitions are JSON loaded at runtime from nodes/.
  4. WYSIWYG interface builder — bind sliders, toggles, input boxes, and selection boxes to node inputs; the same graph can render those controls as a real UI panel.
  5. Build the panebench UI and backend from a graph.
  6. Import/export the exact function paths as JSON.
  7. DB lookups for both Postgres (kreeader metadata) and GCD (the sqlite dump).
  8. API calls for anything kreeader-server exposes — it acts as an API client for kreeader-server, using the same Dex device-auth flow panebench uses.
  9. Ship a pair of importable files: graphs/metadata-lookup.kdev.json (includes the current panebench UI, editable) and graphs/pane-detection.kdev.json (the current pane-detection flow).

Architecture

kreeader-dev/
  main.go              Wails entry
  app.go               Wails-bound backend: registry, executor, client, auth, DB
  serverclient.go      kreeader-server HTTP client (from panebench)
  pairing.go           Dex device-auth flow (from panebench)
  registry.go          loads node definitions from nodes/*.json (dynamic)
  executor.go          runs a graph DAG, node by node
  nodekinds/           built-in node implementations (api, db-postgres, db-gcd, transform, ui)
  kreeader-server/     git submodule (source of truth for endpoints + packages)
  nodes/               *.json node definitions (add nodes here, no recompile)
  graphs/              importable graph files (metadata-lookup, pane-detection)
  frontend/dist/       hand-authored UI: LiteGraph node editor + WYSIWYG builder

Node model (.kdev.json)

A graph is {nodes:[...], links:[...], ui:[...]}. A node references a node definition (by type) from nodes/. A definition declares inputs, outputs, params (each with a control: slider/toggle/input/select and a bindsTo node-input), and a kind:

  • api — call a kreeader-server endpoint (method + path template + auth).
  • db.postgres — parameterized SQL against the kreeader Postgres.
  • db.gcd — query against the GCD sqlite dump.
  • transform — pure data reshaping (jq-ish / template).
  • ui.control — a WYSIWYG control whose value feeds a downstream input.
  • ui.panel — groups controls into a rendered UI (this is how panebench's UI is expressed).
  • output — render/inspect a result.

Nodes are executed in the Go backend so the same path can run headless later when "implemented into code".

Status

Under active construction (Ralph loop). See git log for incremental progress.