| 356 | } |
| 357 | |
| 358 | function handleBoardGet(board: Board): Response { |
| 359 | board.lastTouched = Date.now(); |
| 360 | // No __GSTACK_SERVER_URL injection — board JS uses relative URLs that |
| 361 | // resolve against /boards/<id>/ (the trailing slash is load-bearing here; |
| 362 | // the 301 from the bare /boards/<id> form ensures it). |
| 363 | return new Response(board.htmlContent, { |
| 364 | headers: { "Content-Type": "text/html; charset=utf-8" }, |
| 365 | }); |
| 366 | } |
| 367 | |
| 368 | function handleBoardProgress(board: Board): Response { |
| 369 | // NOT meaningful activity — bare progress polling shouldn't keep the |