0000000000000000000000000000000000000000 6af3fbbd75acd5661bfa3d389245806787cd7f25 maxkerrer 1789450920 +0900 clone: from gitee.com:mxdcc/webtt.git 6af3fbbd75acd5661bfa3d389245806787cd7f25 70a1122b7090e5eb510272713fef9506e8c312b1 maxkerrer 1790347265 +0900 commit: docs: add install guide and troubleshooting for wasm build 70a1122b7090e5eb510272713fef9506e8c312b1 e0c34249881498e991dbf5d3dea645e4946f8eda maxkerrer 1790348070 +0900 commit: OK at 2026-09-25 23:54:29 e0c34249881498e991dbf5d3dea645e4946f8eda 1ae7caa5bc447de13ac5b2ee97b1dd74da3754a4 maxkerrer 1790348603 +0900 commit: feat(www): localize all demo pages to Chinese 1ae7caa5bc447de13ac5b2ee97b1dd74da3754a4 96089dd715e13f3959f23a2440a85efa6aed95b5 maxkerrer 1790349838 +0900 commit: fix(www): align data-table columns, keep header sticky, hide #controls 96089dd715e13f3959f23a2440a85efa6aed95b5 952d24256190d1332f0b030dddf8f44a6d48b6e7 maxkerrer 1790351065 +0900 commit: OK at 2026-09-26 00:44:24 952d24256190d1332f0b030dddf8f44a6d48b6e7 417043d6313db46396698d717c625447d4d53a32 maxkerrer 1790352013 +0900 commit: style(www): redesign 原理说明 panels for readability 417043d6313db46396698d717c625447d4d53a32 5135d0f8bf29eb065b267bf805d2cf2b9341a6aa maxkerrer 1790352572 +0900 commit: fix(www): mobile layout — single-line nav, fit canvases, correct particle count 5135d0f8bf29eb065b267bf805d2cf2b9341a6aa 9a9866d7a5ee4feacf9b2074ed3297a6d2f586e4 maxkerrer 1790380548 +0900 commit: docs: enable auto-commit policy for this project 9a9866d7a5ee4feacf9b2074ed3297a6d2f586e4 346b4de2ac4684a1a386c0c31375dc167f33aca0 maxkerrer 1790380601 +0900 commit: refactor(www): generate 原理说明 panels from scripts/explain/*.json 346b4de2ac4684a1a386c0c31375dc167f33aca0 8ab6d4489d1bdc1d080a7c83b14f9be4c03b19bf maxkerrer 1790380799 +0900 commit: feat(benchmark): add JS vs WASM benchmark demo 8ab6d4489d1bdc1d080a7c83b14f9be4c03b19bf 252b564c8088f038d52cfc5b6116f92526f747e4 maxkerrer 1790381239 +0900 commit: feat(pathfind): add A* maze pathfinding demo 252b564c8088f038d52cfc5b6116f92526f747e4 66c3e128bc37612e9ca8744f5ca507e8ff21086f maxkerrer 1790381509 +0900 commit: feat(fluid): add Stable Fluids simulation demo 66c3e128bc37612e9ca8744f5ca507e8ff21086f fb6b60d74332c969f925df212b83e4616affbd62 maxkerrer 1790381710 +0900 commit: feat(spectrum): add FFT audio spectrum demo fb6b60d74332c969f925df212b83e4616affbd62 5655984f5ec6fc40e87273690224d379f624e631 maxkerrer 1790381879 +0900 commit: feat(sha256): add streaming SHA-256 file hashing demo 5655984f5ec6fc40e87273690224d379f624e631 713dbf56546a200177f2ca7a67cca697fa26dd11 maxkerrer 1790382017 +0900 commit: feat(terrain): add Perlin noise terrain generation demo 713dbf56546a200177f2ca7a67cca697fa26dd11 bba1d1b927727a13e98cb92a98fd96bada386a5f maxkerrer 1790382152 +0900 commit: docs: sync docs with 14 demos, 13 modules, 50 exports, 54 tests bba1d1b927727a13e98cb92a98fd96bada386a5f 18c16fff764413585c0e6dd392f3c21999d91050 maxkerrer 1790383157 +0900 commit: refactor(www): split style.css into shared, explain, home and per-page CSS 18c16fff764413585c0e6dd392f3c21999d91050 67b367ce29dbd470c8c2f18a79313080b9724d8c maxkerrer 1790383452 +0900 commit: feat(www): unified top nav listing all 14 demos 67b367ce29dbd470c8c2f18a79313080b9724d8c 9470a736230d7108eeb59a5157049c89826e7516 maxkerrer 1790384117 +0900 commit: fix(www): dev server with no-cache headers to avoid stale wasm modules 9470a736230d7108eeb59a5157049c89826e7516 afc9ea11edb2b0e96362e2817bcdcf6c425281c3 maxkerrer 1790384454 +0900 commit: fix(www): H5 phase 1 — pinch zoom, OffscreenCanvas fallback, iOS fixes afc9ea11edb2b0e96362e2817bcdcf6c425281c3 afc9ea11edb2b0e96362e2817bcdcf6c425281c3 maxkerrer 1790384690 +0900 reset: moving to HEAD afc9ea11edb2b0e96362e2817bcdcf6c425281c3 d94872f9ea759536bc45511529b1dbc93a89bc93 maxkerrer 1790384829 +0900 commit: feat(www): H5 phase 2 — touch targets, safe areas, mobile performance d94872f9ea759536bc45511529b1dbc93a89bc93 8ff1fa00fe2d21e9670e10faf55ac8b7d97ff212 maxkerrer 1790385048 +0900 commit: feat(www): H5 phase 3 — high-DPI spectrum, re-fit Mandelbrot on rotation 8ff1fa00fe2d21e9670e10faf55ac8b7d97ff212 4e26e40d66eaeef3e1ee5f8bd1dcf56e50d6af3d maxkerrer 1790385066 +0900 commit: docs: mobile (H5) support — browser floor, phone access, conventions 4e26e40d66eaeef3e1ee5f8bd1dcf56e50d6af3d 2b8e1eff9e462c543e511e57c83282ebfd1f96eb maxkerrer 1790385261 +0900 commit: docs: add auto-commit policy to AGENTS.md (mirrors CLAUDE.md) 2b8e1eff9e462c543e511e57c83282ebfd1f96eb 578c1b8da52bf765f3ca9f1dcb589d2af1751753 maxkerrer 1790385458 +0900 commit: docs: tidy HELP, README and CLAUDE.md conventions 578c1b8da52bf765f3ca9f1dcb589d2af1751753 092c6101118f281f9196f0734648ec28e7c5c3a8 maxkerrer 1790386384 +0900 commit: docs: enable auto-push to origin after each commit 092c6101118f281f9196f0734648ec28e7c5c3a8 9674ca5e37a10b508dc656d2b920f6b4a35988b4 maxkerrer 1790388734 +0900 commit: refactor: workspace with one crate per demo, grouped by category 9674ca5e37a10b508dc656d2b920f6b4a35988b4 b27774cae69bedde81115946815e5a5ecaafaba5 maxkerrer 1790389024 +0900 commit: feat(falling-sand): add falling sand demo (new games category) b27774cae69bedde81115946815e5a5ecaafaba5 dc3bbe560661beae1713eaf5770b8c69ffc6afc9 maxkerrer 1790389561 +0900 commit: feat(qrcode): add QR code generator demo dc3bbe560661beae1713eaf5770b8c69ffc6afc9 3e2a0ad6c1087e26c83b4d375f7c415c6e68aa98 maxkerrer 1790389884 +0900 commit: feat(compress): add DEFLATE compressor/decompressor demo 3e2a0ad6c1087e26c83b4d375f7c415c6e68aa98 a53197bddb6a2e69894efc0e9642ed7ed9b37199 maxkerrer 1790390121 +0900 commit: feat(gomoku): add gomoku (five in a row) AI demo a53197bddb6a2e69894efc0e9642ed7ed9b37199 74ae11ef76f7de9c273153e662f47330abf0c94d maxkerrer 1790390683 +0900 commit: feat(rasterizer): add 3D software rasterizer demo 74ae11ef76f7de9c273153e662f47330abf0c94d 4844a82482b734b75556d6ae3389a0685b861ef1 maxkerrer 1790390906 +0900 commit: style(www): share the benchmark result table styles 4844a82482b734b75556d6ae3389a0685b861ef1 0270abccef12a8c77464e1765443101c8c1e49bb maxkerrer 1790391056 +0900 commit: feat(simd): add scalar vs WebAssembly SIMD comparison demo 0270abccef12a8c77464e1765443101c8c1e49bb dc01416991014ebf6f5d28f92e7b99d6e2258ffc maxkerrer 1790391327 +0900 commit: feat(synth): add AudioWorklet synthesizer demo dc01416991014ebf6f5d28f92e7b99d6e2258ffc 20fee9c4e339341706865ad17d095a66442228da maxkerrer 1790391818 +0900 commit: feat(pathtracer): add progressive path tracing demo 20fee9c4e339341706865ad17d095a66442228da 63c433a5f2a8f284ab3a43a090f30547e6580a3c maxkerrer 1790392278 +0900 commit: feat(digits): add handwritten digit recognition demo 63c433a5f2a8f284ab3a43a090f30547e6580a3c c4d5c994356396471e322e33229b1fb28a159884 maxkerrer 1790392716 +0900 commit: feat(pathtracer): threaded build variant rendering rows on rayon c4d5c994356396471e322e33229b1fb28a159884 1c8e79d0d7ed94c1de0e16dc855e5721278d8d98 maxkerrer 1790392967 +0900 commit: docs: cover the nine new demos, build variants and COOP/COEP 1c8e79d0d7ed94c1de0e16dc855e5721278d8d98 84e7f6759236d1cd2cf747a2eee0d334265f8b9e maxkerrer 1790393324 +0900 commit: chore: ignore __pycache__ and stop tracking the compiled gen_nav module 84e7f6759236d1cd2cf747a2eee0d334265f8b9e acb0a6a16daba267209c28eb187d45e06c4977db maxkerrer 1790393922 +0900 commit: fix(pathtracer): make the threaded build's memory shared acb0a6a16daba267209c28eb187d45e06c4977db dd019236b68eef4ba54d6d2d4b7686bbcaee23c7 maxkerrer 1790394235 +0900 commit: OK at 2026-09-26 12:43:53 dd019236b68eef4ba54d6d2d4b7686bbcaee23c7 ca64f7f6f6b816d07480c61c2e489c7ee7231c44 maxkerrer 1790394247 +0900 pull (start): checkout ca64f7f6f6b816d07480c61c2e489c7ee7231c44 ca64f7f6f6b816d07480c61c2e489c7ee7231c44 20094b3b13b0630b3bd30725ebc193f2fdbf4ad5 maxkerrer 1790394247 +0900 pull (pick): OK at 2026-09-26 12:43:53 20094b3b13b0630b3bd30725ebc193f2fdbf4ad5 20094b3b13b0630b3bd30725ebc193f2fdbf4ad5 maxkerrer 1790394247 +0900 pull (finish): returning to refs/heads/main 20094b3b13b0630b3bd30725ebc193f2fdbf4ad5 7630e28605ea01d28e4653163bc057852c8f3103 maxkerrer 1790395091 +0900 commit: feat(scripts): add new_demo.py to scaffold demo pages 7630e28605ea01d28e4653163bc057852c8f3103 52df029ab44975f7ac02aef87540db3fb5dd688e maxkerrer 1790395852 +0900 commit: feat(chip8): add CHIP-8 emulator demo 52df029ab44975f7ac02aef87540db3fb5dd688e 9e2ff68eed6749d22e20127e3e1547a3c0ff0e55 maxkerrer 1790396222 +0900 commit: feat(seam-carving): add content-aware resizing demo 9e2ff68eed6749d22e20127e3e1547a3c0ff0e55 f65eb4754d0dbc610f3df3c19bff0202430644cb maxkerrer 1790396666 +0900 commit: feat(wfc): add wave function collapse demo f65eb4754d0dbc610f3df3c19bff0202430644cb c742894527e78e134c16da4b1fd7265bf40ca8a1 maxkerrer 1790397333 +0900 commit: feat(cloth): add Verlet cloth simulation demo c742894527e78e134c16da4b1fd7265bf40ca8a1 e5fe06e575fb6eac64b3fc7babca21434cf9e262 maxkerrer 1790397602 +0900 commit: feat(markdown): add Markdown renderer demo e5fe06e575fb6eac64b3fc7babca21434cf9e262 4785dcc3282932dcaa21e267c959898d452d651b maxkerrer 1790397855 +0900 commit: feat(delaunay): add Delaunay triangulation / Voronoi demo 4785dcc3282932dcaa21e267c959898d452d651b 1e2f074fe9fb602e4a9f2c44bbcd69f3bfe25ff9 maxkerrer 1790398192 +0900 commit: feat(jpeg): add baseline JPEG encoder demo 1e2f074fe9fb602e4a9f2c44bbcd69f3bfe25ff9 05078e79f37cc9a9552a9a39eb922a8ac1d7f514 maxkerrer 1790398500 +0900 commit: feat(sudoku): add Dancing Links sudoku solver demo 05078e79f37cc9a9552a9a39eb922a8ac1d7f514 1f02214f250f87440bc5670f158ef0d91c595cd7 maxkerrer 1790398738 +0900 commit: docs: cover the eight new demos (31 in total) 1f02214f250f87440bc5670f158ef0d91c595cd7 7e67851299029c0c9e4eeef405df933b6d30a177 maxkerrer 1790402005 +0900 commit: feat(mcp-client): MCP client core in WebAssembly 7e67851299029c0c9e4eeef405df933b6d30a177 d026c9060790f9e80c1e6ef73717006ffaed1c41 maxkerrer 1790403183 +0900 commit: feat(mcp): local bridge for the MCP console d026c9060790f9e80c1e6ef73717006ffaed1c41 1b02fff70099339227db22b973c90591ca20dfc6 maxkerrer 1790403207 +0900 commit: feat(mcp): MCP console page 1b02fff70099339227db22b973c90591ca20dfc6 f0c642d03f50cb448aa20e6a5f97a1f6671a0152 maxkerrer 1790403234 +0900 commit: feat(mcp): MCP console page (content of 1b02fff) f0c642d03f50cb448aa20e6a5f97a1f6671a0152 a48733589b27555ce3730c9a7860c1721f9b2038 maxkerrer 1790408388 +0900 commit: feat(mcp): Rust demo MCP server a48733589b27555ce3730c9a7860c1721f9b2038 ddc62cc6e2fd821c607baa15f12345201fd19808 maxkerrer 1790409198 +0900 commit: feat(mcp): Go and Zig demo MCP servers ddc62cc6e2fd821c607baa15f12345201fd19808 fa25ad956b715f1c8cf160373eb6a44a61f52e5c maxkerrer 1790411766 +0900 commit: OK at 2026-09-26 17:36:05 fa25ad956b715f1c8cf160373eb6a44a61f52e5c 6c9e9500aac718e80bab12f8ca01da019dac3a33 maxkerrer 1790412193 +0900 commit: feat(mcp): restricted shell mode for the bridge 6c9e9500aac718e80bab12f8ca01da019dac3a33 ce7c4f948cda9dc018ff6ff2c01d237464025038 maxkerrer 1790412741 +0900 commit: docs(mcp): example configs for a confirm-free and a confirmed shell ce7c4f948cda9dc018ff6ff2c01d237464025038 4b7fc23d44f1bf060575088380fb97a8c3179d10 maxkerrer 1790412935 +0900 commit: fix(mcp): no "waiting for the terminal" hint for shells with confirm false 4b7fc23d44f1bf060575088380fb97a8c3179d10 d711028ab690c19c0d9417165b00de838b48355f maxkerrer 1790413518 +0900 commit: feat(mcp): say which config and confirm settings the bridge loaded d711028ab690c19c0d9417165b00de838b48355f 970c0508e8aff6174fda4265a39fcef22137fa16 maxkerrer 1790414585 +0900 commit: fix(www): MCP console shows the selected server's tools after switching back 970c0508e8aff6174fda4265a39fcef22137fa16 260b615f678fc09ee770e87103cbc6864a12b0b8 maxkerrer 1790417219 +0900 commit: style(www): compact top nav with a panel of all demos 260b615f678fc09ee770e87103cbc6864a12b0b8 cea8a7ebe892423226b1b7353d52898e6afe9bff maxkerrer 1790418277 +0900 commit: style(www): 原理说明 panels start collapsed on every page cea8a7ebe892423226b1b7353d52898e6afe9bff 8686a2562569299f9438191ee0c606c98ec67538 maxkerrer 1790418633 +0900 commit: fix(mcp): one event stream for all servers, so more than 5 can connect 8686a2562569299f9438191ee0c606c98ec67538 91829b5cb8e09d32a7e02db6ef1d79fc1d2500d2 maxkerrer 1790420254 +0900 commit: feat: pm2 config to keep the dev server running on this machine 91829b5cb8e09d32a7e02db6ef1d79fc1d2500d2 9454ac2e3a75c93d5151c7b188c1cb6ef17ce9b1 maxkerrer 1790429902 +0900 commit: feat(mcp): password login for reaching the console through a domain 9454ac2e3a75c93d5151c7b188c1cb6ef17ce9b1 c4f89bb9aacada377b7ed6c7d5f137b4315e6d69 maxkerrer 1790434906 +0900 commit: OK at 2026-09-27 00:01:44 c4f89bb9aacada377b7ed6c7d5f137b4315e6d69 f3a7bd04853e8dfff1f6921c6f4df5c108fefa5b maxkerrer 1790435332 +0900 pull: Fast-forward f3a7bd04853e8dfff1f6921c6f4df5c108fefa5b cb2e10774651a4e8fb8ad2ebe4a5478a62c4c1ab maxkerrer 1790437528 +0900 commit: feat(server-compute): the same Rust code in the browser and on the server cb2e10774651a4e8fb8ad2ebe4a5478a62c4c1ab fe953fa04103a91414e3536b8189ad39c62fa5e0 maxkerrer 1790439872 +0900 commit: feat(gomoku): server AI that searches deeper on native threads fe953fa04103a91414e3536b8189ad39c62fa5e0 6e43281a84111d4d27d1fedec510aa05d644ba78 maxkerrer 1790439892 +0900 pull --rebase origin main (start): checkout 6e43281a84111d4d27d1fedec510aa05d644ba78 6e43281a84111d4d27d1fedec510aa05d644ba78 4c8a92f3653c6fce10696f1dfb1b5083320bd36f maxkerrer 1790439892 +0900 pull --rebase origin main (pick): feat(gomoku): server AI that searches deeper on native threads 4c8a92f3653c6fce10696f1dfb1b5083320bd36f 4c8a92f3653c6fce10696f1dfb1b5083320bd36f maxkerrer 1790439892 +0900 pull --rebase origin main (finish): returning to refs/heads/main