Compilation
τ-mux est compilé sur Bun + Electrobun. Tout chemin de build passe par bun — il n’y a ni Node, ni npm, ni pnpm dans le workflow.
Au quotidien
Section intitulée « Au quotidien »bun install # dependenciesbun start # build + launch oncebun dev # build + launch with --watch (rebuilds on src change)bun start est le bon défaut — recompilation unique, lancement rapide. bun dev maintient un watcher Electrobun en vie pour que les modifications de source se rechargent à chaud.
Le runtime dev est isolé d’une install stable
Section intitulée « Le runtime dev est isolé d’une install stable »bun start, bun run dev et bun run build:dev positionnent automatiquement HT_CONFIG_DIR=$HOME/Library/Application Support/hyperterm-canvas-dev. Le runtime dev a son propre settings.json, telegram.db, historique de navigation, cookies, et socket Unix — donc un τ-mux stable installé sur la même machine ne perd pas son état quand vous lancez le dev, et les invocations ht depuis un volet dev parlent au socket dev, pas à celui de l’app installée. Les builds stable / canary / package gardent le défaut ~/Library/Application Support/hyperterm-canvas.
bun test # unit + integration suite (~9 s)bun run test:e2e # Playwright web-mirror specs (~1 min)bun run test:native # Playwright native-app specsbun run test:all # bun test + Playwright web e2ebun run test:full-suite # typecheck + bun test + web e2e + native + design report gatebun run typecheck # TypeScript onlybunfig.toml cantonne bun test brut à tests/ pour que les specs Playwright tests-e2e/ ne soient pas ramassés.
Linting / vérification de types
Section intitulée « Linting / vérification de types »bun run typecheck # tsc --noEmitIl n’y a pas d’étape de lint séparée — le mode strict de TypeScript attrape la plupart des problèmes. Les directives de design du projet vivent dans design_guidelines/.
Builds de production
Section intitulée « Builds de production »bun run build:dev # dev .app (no CLI injection — requires stable/canary for `Install in PATH`)bun run build:canary # canary .app + DMGbun run build:stable # stable .app + DMG with bundled `ht` CLIbun run package:mac # stable build + post-package step (DMG, signing, etc.)Un hook Electrobun postBuild (scripts/post-build.ts) compile bin/ht en ciblant l’architecture du build et l’injecte dans le bundle interne avant l’archivage. Donc Install 'ht' Command in PATH fonctionne d’emblée sur les builds stable et canary.
Binaire CLI autonome
Section intitulée « Binaire CLI autonome »bun run build:cli # → ./build/ht-cliUn binaire ht statique et autosuffisant sans exigence de runtime Bun. Livrez-le sur n’importe quel Mac où τ-mux tourne.
Bundle du client web
Section intitulée « Bundle du client web »Le client du miroir web vit dans src/web-client/ et se bundle vers assets/web-client/client.js :
bun run build:web-client # readable bundlebun run build:web-client -- --minify # production-minifiedbun start et bun run build:* exécutent tous deux le bundle du client web avant d’invoquer Electrobun.
Versionnement
Section intitulée « Versionnement »Conformément au CLAUDE.md du projet, exécutez bun run bump:patch (ou :minor / :major) avant de committer. Le script de bump édite package.json, la configuration Electrobun, et toutes les références de version épinglées d’un seul coup.
Les logs atterrissent dans ~/Library/Logs/tau-mux/app-YYYY-MM-DD.log — un fichier par jour, rotation par date.
tail -f ~/Library/Logs/tau-mux/app-$(date +%Y-%m-%d).logLes tests redirigent vers $HT_CONFIG_DIR/logs pour garder le vrai répertoire propre.