Monorepo for Aesthetic.Computer aesthetic.computer
4
fork

Configure Feed

Select the types of activity you want to include in your feed.

update l5 try layout

+25 -17
+1 -10
lith/README.md
··· 17 17 - `CONTEXT=production` 18 18 - `DEPLOY_SECRET=...` 19 19 20 - Optional deploy keys: 21 - - `DEPLOY_BRANCH=master` or `DEPLOY_BRANCH=main` 22 - - `DEPLOY_BRANCHES=master,main` to allow multiple webhook refs 23 - 24 20 Recommended workflow: 25 21 1. Copy `.env.example` to `.env` 26 22 2. Fill in the real production values 27 23 3. Re-run `fish vault-tool.fish status` to confirm `lith/.env` is tracked 28 - 4. Push the deploy branch to GitHub. The webhook deploys pushed commits only. 29 - 5. Or deploy manually with `fish /workspaces/aesthetic-computer/lith/deploy.fish` 30 - 31 - Notes: 32 - - `lith/deploy.fish` no longer rsyncs local working-tree files into production. 33 - - Manual deploys now reset the host to the pushed git branch state, then refresh `.commit-ref`. 24 + 4. Deploy with `fish /workspaces/aesthetic-computer/lith/deploy.fish`
+1 -1
system/public/aesthetic.computer/lib/disk.mjs
··· 67 67 68 68 import * as lisp from "./kidlisp.mjs"; 69 69 import { isKidlispSource, fetchCachedCode, fetchKidlispMetadata, getCachedCode, initPersistentCache, getCachedCodeMultiLevel, saveCodeToAllCaches, enableKidlispConsole, enableKidlispTrace, disableKidlispTrace, clearExecutionTrace, postExecutionTrace } from "./kidlisp.mjs"; // Add lisp evaluator. 70 - import * as l5 from "./l5.mjs"; 70 + import * as l5 from "./l5.mjs?v=20260330-runtime-support"; 71 71 72 72 import { qrcode as qr, ErrorCorrectLevel } from "../dep/@akamfoad/qr/qr.mjs"; 73 73 import { microtype, MatrixChunky8 } from "../disks/common/fonts.mjs";
+17 -1
system/public/aesthetic.computer/lib/l5.mjs
··· 140 140 strokeWeight: 1, 141 141 textSize: 1, 142 142 sizeWasCalled: false, 143 + pendingResizePaints: 0, 143 144 looping: true, 144 145 redrawRequested: false, 145 146 hasDrawnOnce: false, ··· 236 237 237 238 engine.global.set("size", withApi(($, w, h) => { 238 239 state.sizeWasCalled = true; 240 + // Keep a couple of paints alive after a resize so noLoop() sketches 241 + // still repaint once the AC iframe finishes its reframe/expansion pass. 242 + state.pendingResizePaints = Math.max(state.pendingResizePaints, 3); 239 243 $.resolution(asNumber(w, 128), asNumber(h, asNumber(w, 128))); 244 + $.needsPaint?.(); 240 245 })); 241 246 242 247 engine.global.set("fill", (...args) => { ··· 464 469 465 470 updateInputGlobals(engine, $, state); 466 471 467 - const shouldDraw = state.looping || !state.hasDrawnOnce || state.redrawRequested; 472 + const shouldDraw = 473 + state.looping || 474 + !state.hasDrawnOnce || 475 + state.redrawRequested || 476 + state.pendingResizePaints > 0; 468 477 if (!shouldDraw) { 469 478 maybePaintRuntimeError($); 470 479 return false; ··· 476 485 477 486 safeCall("draw", draw); 478 487 state.hasDrawnOnce = true; 488 + 489 + if (state.pendingResizePaints > 0) { 490 + state.pendingResizePaints -= 1; 491 + if (state.pendingResizePaints > 0) { 492 + $.needsPaint?.(); 493 + } 494 + } 479 495 480 496 maybePaintRuntimeError($); 481 497 return true;
+2 -1
system/public/aesthetic.computer/lib/try/shared-page.mjs
··· 1 1 const DEFAULT_MONACO_LOADER = 2 2 "https://cdn.jsdelivr.net/npm/monaco-editor@0.52.0/min/vs/loader.min.js"; 3 3 const DEFAULT_MONACO_BASE = "https://cdn.jsdelivr.net/npm/monaco-editor@0.52.0/min/vs"; 4 - const SHARED_TRY_ASSET_VERSION = "20260330-mobile-stack"; 4 + const SHARED_TRY_ASSET_VERSION = "20260330-runtime-support"; 5 5 6 6 const DEFAULT_THEME_VARS = { 7 7 light: { ··· 924 924 } 925 925 initIframeRunner(); 926 926 await initMonacoEditor(); 927 + queueOrRun(state.initialCode); 927 928 initLiveReload(); 928 929 929 930 return {
+1 -1
system/public/l5.aesthetic.computer/app.mjs
··· 1 - import { createTryPage } from "../aesthetic.computer/lib/try/shared-page.mjs?v=20260330-mobile-stack"; 1 + import { createTryPage } from "../aesthetic.computer/lib/try/shared-page.mjs?v=20260330-runtime-support"; 2 2 3 3 const AC_ORIGIN = "https://aesthetic.computer"; 4 4
+1 -1
system/public/l5.aesthetic.computer/index.html
··· 10 10 </head> 11 11 <body> 12 12 <div id="try-page-root"></div> 13 - <script type="module" src="./app.mjs?v=20260330-mobile-stack"></script> 13 + <script type="module" src="./app.mjs?v=20260330-runtime-support"></script> 14 14 </body> 15 15 </html>
+1 -1
system/public/processing.aesthetic.computer/app.mjs
··· 1 - import { createTryPage } from "../aesthetic.computer/lib/try/shared-page.mjs?v=20260330-mobile-stack"; 1 + import { createTryPage } from "../aesthetic.computer/lib/try/shared-page.mjs?v=20260330-runtime-support"; 2 2 import { compileProcessingSourceForRuntime } from "../aesthetic.computer/lib/try/processing-transpile.mjs"; 3 3 4 4 const AC_ORIGIN = "https://aesthetic.computer";
+1 -1
system/public/processing.aesthetic.computer/index.html
··· 10 10 </head> 11 11 <body> 12 12 <div id="try-page-root"></div> 13 - <script type="module" src="./app.mjs?v=20260330-mobile-stack"></script> 13 + <script type="module" src="./app.mjs?v=20260330-runtime-support"></script> 14 14 </body> 15 15 </html>