Commit

07aa9e7

Yes: public: true but not reachable from HomePage. They still go to Supabase (row + search keys, compiled too) but get no static HTML and stay out of tree/index/sitemap. A visit hits 404.html, and the client fetches it via notes_get_contents.
Correct. We can start infra side anew. Let's start anew. Install @mattpocock skills. Put the current checkout in a worktree for reference. And let's get /grilling.
Done: mattpocock-skills plugin installed (user scope), old checkout parked at ./legacy on a legacy branch. Grilling round 1. Reply "yes" per Q to take my rec. Q1 Where it runs: bare on the VPS under pitchfork, vault as a plain git checkout so Claude Code can work in it…
Q1, Q2, Q3, Q5, Q6. Agree Q4. Right now publish is all-or-nothing, as in publishing the vault content. Not sure if with the new version, can we can just publish selectively.
Round 2, all on Q4. Selective fits well, because Supabase is already a separate copy: the static site is built from Supabase rows, not from the vault. Q7 Unit of publish: per note. "Publish" copies that note's current source into its Supabase row, and the row becomes the…
dt.in.thThai Pangsakulyanont
Q7, Q8, 10, 11. Agree Q9. Still needed. public: true is the "desired state" so to speak. To unpublish I would set public: false and the back office should slate it for unpublishing. Btw, by starting anew I mean start a new Git history. On cutover we merge main in with -s…
Got it. public: true = desired state, Supabase row = actual state. And the checkout is now on an orphan branch next, with the old code in ./legacy. At cutover: merge main into next with -s ours, then fast-forward main. Round 3: Q12 Reconcile UX: the backoffice shows a plan,…
Round 4, ops and edges: Q18 GitHub App: one app, installed on the vault repo and dtinth/dt.in.th, with contents read/write only. Its private key and the Supabase service key live in a mise env file outside the vault, so agents working in the vault never see them. -> Yes. Q19…
dt.in.thThai Pangsakulyanont
Last round, I think: Q25 Distribution: the CLI is published as a compiled Bun binary on GitHub Releases of this repo, and the vault pins it in mise.toml via the github: backend. pitchfork.toml in the vault runs notes serve. -> Yes. Q26 Cutover check: before switching,…
Fair. Bundled JS (bun build --target=bun, #!/usr/bin/env bun, bun via mise), with backoffice assets inlined so it's one file. If shiki wasm won't inline, ship a tarball instead. Writing docs/SPEC.md now.
@dtinth docs/SPEC.md is done, committed as the first commit on (local only). It covers the 3 layers, plan/apply, the frontend contract, sync, secrets and cutover. Push to origin so you can read it there?
Well, you don't have push access right now, so I will have to grant you access. But I will do that later. For now, please work on the local copy. But are you ready to start prototyping in the meantime? Maybe you can see if you can get Bun building and bundling and compiling to…
@dtinth Prototype works, committed on next (00f1eea, local). bun run build makes dist/notes.js: one 10.8 MB file with a #!/usr/bin/env bun shebang. Copied alone (no node_modules) next to an example vault, it indexes notes (private/listed/unlisted, sha256 versions) and builds…
On it: fixing the Vue dev build, then packing the browser assets as a second artifact the CLI downloads and caches.

commit 07aa9e7