@wenathlan/debonair
v2.0.150
Published
debonair is the audio and DAW app of the wenathlan family: the isolated marketing app for the operating system, it houses the katexis engine at the folder root and imports gateway, AI and workflow from devthink and versawase from cadria. The envelope dist
Maintainers
Readme
debonair
Audio and DAW. Isolated marketing app for the operating system. Houses the katexis engine at the root; imports gateway, AI and workflow from devthink and versawase from cadria. This folder receives the debonair application per the complete tree.
The Sol theme
Debonair Sol
Debonair is the audio workstation (DAW) of the DevThink family, running on the katexis engine. This Sol theme is the workstation's web surface — a Vite + React SPA whose library, generate, studio and settings routes drive real engine plans (no mock anywhere: the studio plays the WebAudio transport of Sol/studio/audioengine.ts over the plans arranger.ts composes).
pnpm install
pnpm devThe contract (campaign 5-b)
- test —
pnpm testrunsvitest runovertests/(223+ cases across 20 files, node environment).bun testanswers green on the same suite (bun aliases the vitest API). - typecheck —
pnpm typecheck(tsc --noEmit) must exit 0. - lint —
npx biome check .must answer 0 errors and 0 warnings. - restore:entry — the vite build emits hashed bundles beside the sources and rewrites
index.htmlto the hashed face.pnpm restore:entryrestores the source face from HEAD, with two guards: it REFUSES (exit 1, nothing touched) while HEAD itself is not the source face (script … App.tsx), and it REFUSES while the HEAD face still carries the Google Fonts CDN link (the type triad self-hosts via@fontsource, imported byApp.tsx— the face must never ride a font CDN again). - build hygiene —
.gitignorebars every hashed emit (/index-*.js|css,/favicon-*.svg|png|ico,/manifest-*.webmanifest,/icon-*.png,/apple-touch-icon*.png,/registerSW-*.js,/sw.js,/*.woff2); the pages workflow rebuilds per deploy, so only the canonical unhashed faces stay tracked. After a local build, runpnpm restore:entryto putindex.htmlback on the source face. NEVER build twice without the source face back on disk: the build entry is the rootindex.html, so a second build over the hashed face compiles the previous emit (the double-hash signature —favicon-XXXX-XXXX.svg— the legacy tree carried).
The family contract
The chrome links the sibling deploy units through familyurl.ts (the verbatim family body) over the one accent table of family.ts (spec §12) — the rail foot, the landing footer and tests/family.test.ts read the same table, so the row cannot drift.
