Repository navigation
Conversation
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.
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.
No description provided.