From c92847413bc8d61311208e49f0c87341c557d8f7 Mon Sep 17 00:00:00 2001 From: megaproxy Date: Tue, 26 May 2026 19:32:22 +0100 Subject: [PATCH] Session log: v0.3.0 shipped + release-time gotchas for next time MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Closes out the session that took MCP from read-only v1 → full write surface in v0.3.0. Notes the four release-time hiccups (tsc -b narrowing miss, rm -rf src-tauri/target wiping the installer, pnpm install hang from WSL, separate Cargo.lock commit) with fixes shipped and a clean recipe for the next release. Co-Authored-By: Claude Opus 4.7 (1M context) --- memory.md | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/memory.md b/memory.md index 006e88f..f22704f 100644 --- a/memory.md +++ b/memory.md @@ -52,6 +52,25 @@ Durable memory for this project. Read at session start, update before session en ## Session log +### 2026-05-26 — **v0.3.0 shipped to Forgejo releases** + +Cut after a marathon session that took MCP from read-only v1 → full write surface + policy engine + audit + safeguards + .mcpb bundle. Tag `v0.3.0`, both `tiletopia_0.3.0_x64-setup.exe` and `tiletopia.mcpb` attached. + +**Release-time hiccups** (all fixed in subsequent commits — read these before the next release): + +- `pnpm tauri build` failed type-check on a `a.spec!.hostId` non-null assertion that drops the `kind === "ssh"` narrowing inside a `hosts.find` closure. `pnpm check` ran `tsc --noEmit` which had been silently missing the bug; `tsc -b` (what `pnpm build` uses) caught it. Fixed the line + switched the check script to `tsc -b` (both project-reference tsconfigs already have `noEmit: true`, so no emission). Commits `e1ceaab`, `7e285b2`. +- After the Windows build I ran `rm -rf src-tauri/target` from WSL to clear tsc cache — wiped the cargo target dir *including the freshly-built installer*. /mnt/d/ is the real Windows filesystem. Lesson: `src-tauri/target/` is cargo's output dir, NOT just tsc cache; do not touch without rebuild plan. The user rebuilt; cost a single `pnpm tauri build` cycle. +- `pnpm run build:mcpb` from `release.sh` hung indefinitely when run from WSL — pnpm auto-runs `pnpm install` first, which walks `node_modules` across the /mnt/d/ filesystem boundary and stalls for minutes. The bundle script is pure Node + fs, no deps to install. Switched release.sh to call `node scripts/build-mcpb.mjs` directly. Commit `1db8b26`. +- `Cargo.lock` needed committing separately after the version bump (cargo updated it during `pnpm tauri build`). Worth doing the version bump + `cargo check` together next time so the lock-file change is atomic with the version commit. + +**For the next release:** +1. Bump version in `package.json` + `src-tauri/Cargo.toml` + `src-tauri/tauri.conf.json` +2. Run `cargo check` (or any cargo command) to update `Cargo.lock` +3. Commit all four files + push +4. `pnpm tauri build` on Windows +5. `./scripts/release.sh vX.Y.Z` from WSL +6. Edit the auto-generated release note on Forgejo with a proper changelog + ### 2026-05-26 — Clear cargo warnings: drop v2.1 classifier scaffold, annotate rmcp tool_router Four pre-existing dead-code warnings out of every cargo build. Three were the v2.1 classifier scaffold sitting unused in `mcp_policy.rs` (`ClassifierHint` enum, `PolicyClassifier` trait, `NoopClassifier` struct + impl). Deleted — the scaffold being unused for weeks was a stronger "no plan" signal than its presence was a "TODO" signal. If we actually want classifier upgrade-on-Ask later (v0.4.0 candidate), trivial to re-add; the design questions (Anthropic vs Ollama, API key UX, monthly cost cap, privacy disclosure) need a focused session.