Build Process Log

This is the dated, source-grounded record of the 2026-08-30 implementation and publication session and the 2026-08-31 local redesign session. Claims below distinguish source facts from observed build, service, HTTP, and browser receipts.

2026-08-30 — SvelteKit scaffold established

The repository snapshot contains:

  • a SvelteKit route tree under src/routes;
  • shared library code under src/lib;
  • the application shell and global stylesheet;
  • Vite configuration with Tailwind and SvelteKit plugins;
  • adapter-node selected in vite.config.ts; and
  • package scripts for development, build, preview, SvelteKit sync, and svelte-check.

The final production gate later completed with 0 svelte-check errors and warnings, followed by a successful adapter-node build; see Operations.

2026-08-30 — Dependency boundary fixed

package.json declares five direct runtime dependencies:

  • @internationalized/date;
  • @lucide/svelte;
  • bits-ui at the ^2.19.0 range;
  • clsx; and
  • tailwind-merge.

The development toolchain declares adapter-node, SvelteKit, the Svelte Vite plugin, Tailwind’s Vite plugin, Node types, Svelte, svelte-check, Tailwind CSS, TypeScript, and Vite. No daisyUI package, browser automation package, or server-side LLM SDK is declared.

2026-08-30 — Registry-first showcase contract established

src/lib/showcase/registry.ts declares the category vocabulary, ordered component records, slug lookup, grouped navigation, previous/next navigation, and upstream documentation URL helper. Its source comment explicitly names it the showcase single source of truth.

The current source snapshot contains 46 registry entries. This count is derived from the file and is why the component catalog contains 46 rows; no row is dropped to satisfy an inherited count.

ComponentPage.svelte consumes registry metadata and navigation. Demo.svelte owns the preview surface and optional raw-source disclosure. Route pages own component-specific anatomy, demos, and API notes.

2026-08-30 — Parallel implementation fan-out started

The exact work-slice names were:

  • CompDisclosure
  • CompOverlays
  • CompMenus
  • CompCommandNav
  • CompFormControls
  • CompSelection
  • CompDatesA
  • CompDatesB
  • CompFeedback
  • CompUtilities
  • BuilderCore
  • BuilderUI
  • WikiVault

All listed slices completed and were integrated through the shared contracts below.

2026-08-30 — Contracts made the fan-out safe

Parallelism used explicit boundaries rather than merge-time guesswork:

  1. Each component slice owned disjoint demo and route directories.
  2. The showcase registry, ComponentPage.svelte, Demo.svelte, CodeBlock.svelte, and src/app.css were shared read-only contracts for component slices.
  3. Every component slug already existed in the registry before page work began.
  4. Every component slice used the same route/demo/anatomy/notes composition contract and the same shared skin.
  5. src/lib/builder/spec.ts was read-only to both builder slices and fixed the serialisable types.
  6. BuilderCore owned src/lib/builder except spec.ts, plus the builder API route.
  7. BuilderUI owned builder/relay routes and builder UI components, and consumed the fixed BuilderCore public surface.
  8. WikiVault alone owned q5vault and quartz.config.bits.yaml.
  9. Project-wide build and live verification were reserved for Main after all slices landed, avoiding false failures against half-written sibling files.

2026-08-30 — Wiki SSOT authored

The vault was derived from package.json, vite.config.ts, src/app.css, the showcase registry and shell sources, the reference accordion page, src/lib/builder, the builder session endpoint, the builder/relay route sources, and the deploy templates. Its deployment and live receipts are maintained in Operations.

2026-08-30 — Integrated source verified

The final application gate ran npm run check && npm run build. svelte-check processed 4,826 files with 0 errors and 0 warnings. Vite completed its server and browser builds and adapter-node emitted the production server.

The generated builder source for both sample screens compiled with the Svelte compiler. A coverage spec containing every one of the 22 registered builder block types also compiled without warnings.

2026-08-30 — Application and wiki published

The adapter-node application was installed as the hardened system service bits.service, running as loca on loopback port 51500. Nginx publishes bits.loca.zone and serves the Quartz output at wiki.bits.loca.zone. A Let’s Encrypt certificate covering both names expires on 2026-11-28.

The Multi-Wiki Grid build passed SSOT validation, parsed 61 Markdown inputs, and emitted 178 files. Public HTTPS probes returned 200 for the application, builder, wiki root, and component catalog.

2026-08-30 — Browser contract proven

A real Chromium session rendered all 46 catalog entries and fetched every corresponding component route with 200. The reference Accordion expanded and exposed its source.

The builder relay installed as window.bitsBuilder, advertised 22 blocks, accepted a human chat request through ask(), applied a heading and switch through validated operations, returned an agent response through say(), exported matching Svelte source, and left zero pending requests. Invalid operations produced structured errors, and undo/redo visibly changed the serialized root count.

2026-08-30 — Local component guide layer published

bun run generate:component-guides derived 46 concise component and utility guides, their category index, and the reference catalog from src/lib/showcase/registry.ts. Each live showcase page now links first to https://wiki.bits.loca.zone/components/<slug>; exhaustive upstream API documentation remains a secondary reference inside the local guide.

The application gate remained green with 0 errors and 0 warnings, the adapter-node service was rebuilt and restarted, and the expanded 61-input Quartz vault emitted 178 files.

2026-08-31 — Compact showcase and canvas-first builder

The showcase registry remains the single source for all 46 components. Its redesigned consumer is a compact, single-page component picker rather than a second navigation shell: there is no duplicate sidebar, entries are icon-led, and hover and keyboard-focus tooltips open with zero delay. Filtering and component links still derive from the registry.

The builder is now canvas-first and exposes all 22 registered block types around the primary canvas. Its activity surface presents a bounded observable record of requests, validation, operations, persistence, and agent results. Activity autoscroll follows new rows only while the user remains at the bottom; once a user scrolls up to inspect earlier activity, new entries preserve that reading position.

Blueprint 1.6.1 was consulted only as advisory, primary-source composition evidence. It was not adopted as application source or a runtime dependency. daisyUI remains absent.

An adversarial screenshot review challenged the first builder pass for reserving too much chrome around the canvas. The final refinement changed the desktop palette from two block rows to one at the xl breakpoint and narrowed the inspector to 18rem without hiding any block type or primary action.

The YAGNI project-scoped OMP layer consists only of:

  • .omp/RULES.md;
  • .omp/rules/bits-builder.mdc; and
  • .omp/skills/bits-builder-agent/SKILL.md.

After the local gates and browser review completed, explicit release approval was obtained. The adapter-node service was restarted and read back active; the production route sweep passed all 46 component pages; the wiki SSOT gate passed and emitted 178 files from 61 inputs; and live browser probes confirmed the application, process log, operations receipts, component catalog, and relay protocol.


loca.zone · bits.loca.zone · Bits UI

1 item under this folder.