Skip to content

Launch Website - #2

Merged
cajdata merged 10 commits into
mainfrom
website
Sep 29, 2026
Merged

cajdata merged 10 commits into
mainfrom
website

Conversation

@cajdata

@cajdata cajdata commented Sep 29, 2026

Copy link
Copy Markdown
Owner

No description provided.

The rate table on main became a MappingProxyType, and the write function's ceiling is computed with int() and multiplication. The source reader now evaluates MappingProxyType of a dict literal, int() of a number, and + - * / between numbers, and still runs nothing: every other call is refused.

Counts must be whole numbers, so a fractional one fails the build instead of being rounded down. Arithmetic errors are build errors, and a constant computed from a name that changes is refused like the name itself.

New facts from the source: the write function's ceiling, the longest rate wait, the listen-only recheck interval, and the passive reopen limits.
Every external link drew the same arrow path inline. The path now lives once in the page's sprite, and each link points to it with <use>. The timing diagram's traces drew a segment for every bit; they now draw one per run of equal bits, the same line in fewer bytes. Together they save about 1.7 KB on the Safety page, with nothing visible changed.
Copy that says Lasto is built in N phases now fails the build when N doesn't match roadmap.toml, on every page, mirror, and llms file, so adding a phase can't leave an old count behind.
roadmap.toml marks Phase 1 done and public, approved 2026-09-28, and adds Phase 9, the local web GUI, as planned, with /docs/gui/ reserved. The copy now says ten phases.

The Safety page is rewritten for the safety model on main and split in two to stay under the page budget. /safety/ keeps the rules: the passive recheck every 0.1 s with reopen or end, the polled checks, the route table fixed at import, the kill switch that latches for the life of the process, and a plain-language statement of what the design does and doesn't claim. /safety/core/ covers the machinery: the timing diagram, the one write function and its process-wide ceiling, flow control, the sealed core and its own clock, the serial guard and its pending review, the audit log, and the tests. Every changed claim was checked against the source, and the overstated ones were corrected.

Code links are 12-character permalinks now that Phase 1 is public, and the pages' dates follow every file in the safety core. The site's own environment moves to .venv-site, installed with hashes checked, because uv run --with-requirements doesn't check them. Home, About, the llms files, and SECURITY.md are updated to match.
… actionlint

GitHub rejected site.yml before running anything, on every push since W1: the install step's run: value was a plain YAML scalar, and the ': ' inside --only-binary=:all: -r is YAML syntax. It's a folded block scalar now. The same parse error failed Dependabot's github-actions updates, which recover once this reaches main.

site/tests/test_workflows.py runs actionlint 1.7.12 on every workflow: the official release binary, downloaded into site/.cache and checked against the release's sha256 on every run. shellcheck comes from shellcheck-py, hash-pinned, and is passed to actionlint by path. Broken workflows prove the syntax, shellcheck, and expression checks fire, output is read as UTF-8, and nothing skips. A test checks that each Dependabot entry points at files that exist.

Also from an audit of the workflow: the paths filters list everything the build and tests read (pyproject.toml, .python-version, .github/**; SECURITY.md dropped), concurrency is per ref, Python comes from .python-version, the Pages artifact is uploaded only when deploying and stays the last build step, the deploy's concurrency group has a specific name, and the smoke test accepts the Pages URL with or without a trailing slash and fetches /safety/core/. The preview's .claude/launch.json is gitignored.
@cajdata
cajdata merged commit 3c6c943 into main Sep 29, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant