01aa7f3e8f
gates / consistency-and-conventions (push) Successful in 32s
User hit 'API error 402: ... You requested up to 131072 tokens, but can only afford 4511' on the assist alias: no provider ever sent max_tokens, so OpenRouter's credit pre-check billed the routed model's full worst-case output; user also asked to bound session history to the last 5 requests/responses. Architect decisions: - AI_MAX_TOKENS (num, default 2048): sent as max_tokens on OpenRouter and generationConfig.maxOutputTokens on Gemini — a real per-request cost ceiling. llamacpp unchanged (local/free, no pre-check). - AI_SESSION_TURNS (num, default 40 kept back-compat; messages, 2 per exchange — 10 = last 5 conversations): resolved lazily in session_push because config loads after the hardcoded line-25 default. - Both registered in the bin/pos-ai POS_CONFIG @General section, so they appear in 'pos config ai' with num: validation. Reviewer hardening (CHANGES_REQUIRED -> fixed): unguarded env input could reach jq tonumber (0/-5/010/abc all savable via config-ui's ^-?[0-9]+$) and abort the CLI; both providers and session_push now guard with ^[1-9][0-9]*$ and fall back to the default. Verified: fake-curl shim smoke (16 provider-body + 12 session-window checks incl. the 010-regression proof), make gen idempotent, make check OK, make lint 0 FAIL/0 WARN, make test 17 files / 299 checks / 0 fail (~49s), bash -n clean, git diff --check clean. Reviewer ACCEPT (twice). Tester regression round (permanent provider-body + session-pruning coverage) intentionally not run this cycle — user's call; remains a documented follow-up.
Documentation
Everything in this folder is reference material for the Linux_post_install project. The root README is the short intro + quick start; this folder holds the detail.
| Document | What it covers |
|---|---|
| HOWTO.md | Hands-on guides per category (ai, network, docker, media, system, ssh, share, communication, entertainment): flags, recipes, config, troubleshooting |
| SCRIPTS.md | Core installer scripts: install.sh, preinstall.sh, postinstall.sh, lib/common.sh, lib/flags.sh, lib/entertainment-lib.sh, features/autostart.sh, features/usb-automount.sh — purpose, how each works, configuration |
| POS.md | The pos CLI: dispatcher, every pos-* command, Docker Compose / ScaleTail config, legacy wrappers, flag CLIs |
| APPS.md | Optional apps: apps/install.sh picker, installer conventions, full app catalog |
| SYSTEMD.md | Systemd units (autostart.service, usb-automount.service, ssh-agent.service), feature-flag gating, bash completion |
| DEV.md | Developer guide: architecture, conventions, how to add tools/apps/features, commit guidelines |
| AGENT_Context_Project.md | Single-source context doc for AI agents working on the repo |
| algorithm.md | ASCII diagrams: install flow, pos dispatch, compose up, config cascade, logging, vbox lifecycle |
Quick navigation
- Just installed and want to use it? → POS.md
- Adding a package? → SCRIPTS.md → preinstall.sh
- Adding a CLI tool or app? → DEV.md
- First deploy of a self-hosted service? → POS.md → Docker Compose