Repository navigation
Warm pool on Linode, chat page branding, uptime on /, fresh runtime icons - #62
Merged
Merged
Conversation
… errors - AgentWebUI Lite keeps its own name (BRAND_NAME=AgentWebUI, not the agent's name), shows the Atlas Agents mark (BRAND_LOGO, the dashboard's white logo over https), and calls the signed-in user Admin (USER_NAME; its sidebar said "You"). Reaches running boxes on their next reprovision. - Uptime Kuma probes the agent's root (/): a chat-UI agent answers /health with 401, so every one read as down. `npm run uptime:resync` re-points the existing monitors (dry run by default). - Runtime icon URLs carry a version (?v=2): the CDN kept serving the old OpenCode and Pi placeholders for hours under the same URL. - The warm-pool scheduler now logs the create / advance / reap errors it collected; a create that threw only fed the breaker, so the logs said "3 bake failure(s)" and never why. Co-Authored-By: Claude <noreply@anthropic.com>
…eason Every universal pool create on Linode failed with a bare "Request failed with status code 400", and the breaker paused the pool. Linode's reason, checked on prod: "metadata.user_data: decoded user_data must not exceed 16384 bytes". The universal image's bootstrap is 38 KB (it was ~30 KB before Gemini CLI and Grok, and failed the same way). Single-engine bootstraps are 11-14 KB and fit. - linodeUserData() sends a script over 16 KB gzip-compressed (the universal image: 7.4 KB). cloud-init detects gzip user-data and decompresses it. Smaller scripts go uncompressed, as before. - createVM rethrows with describeLinodeError, so the reason reaches the logs and the pool's error report (never the request config, which has the token). Co-Authored-By: Claude <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Warm pool: Linode refuses user-data over 16 KB decoded ("decoded user_data must not exceed 16384 bytes", read on prod). The universal image is 38 KB, so every universal create got a 400 and the breaker paused the pool. Scripts over 16 KB are now sent gzip-compressed (7.4 KB); cloud-init decompresses them. Linode errors now carry Linode's reason, and the scheduler logs create errors it used to swallow.
Chat page (AgentWebUI Lite): BRAND_NAME=AgentWebUI, BRAND_LOGO = the Atlas Agents mark, USER_NAME=Admin (it said "You").
Uptime: monitors probe
/(a chat-UI agent answers/healthwith 401).npm run uptime:resyncre-points existing ones.Icons:
?v=2on runtime icon URLs; the CDN served the old OpenCode/Pi placeholders.Verified: tsc, eslint, 741 unit tests. Not verified: a Linode actually booting a gzip bootstrap (the first pool bake after deploy is that test).
🤖 Generated with Claude Code