Repository navigation
Conversation
…d.py links site/sitegen/tools.py pins actionlint 1.7.12 and lychee 0.24.2 by version and by the sha256 each release publishes. It downloads each once into site/.cache, checks the archive's sha256 on every use, and compares the binary on disk with the checked archive's copy, so only verified bytes ever run. A download that fails or doesn't match is a clear error, and a copy that's already running doesn't block the next use. python site/build.py links runs the pinned lychee over the built site, offline by default and with --online for external links, from inside site/dist so no lychee config in the repo can change what it checks. The workflow uses it in place of lychee-action, whose download wasn't hash-checked; it counts the same links as before. Tests cover the pinned version, a clean check of the built site, a broken link and a broken anchor on a nested page (the output must name them), and downloads or cached files that don't match their pins. Dependabot can't see these pins; updating them is by hand, as the README says.
Lighthouse 13.5.0 scored 100 in all four categories on every indexable page, mobile and desktop; the 404 page's SEO 63 is its noindex on purpose. HTML had 0 errors, structured data 0 errors and 0 warnings, and the live link check found 0 broken links in 459. The Rich Results Test shows one valid SoftwareApplication item; its only note is the optional aggregateRating, which stays out because there are no real ratings. lasto.dev is verified in Google Search Console and Bing Webmaster Tools, with the sitemap submitted to both. The deploy description now names the pinned lychee, and section 10 gains the search engine steps.
The Google site verification TXT record is in place at the apex, and Bing Webmaster Tools was imported from Search Console, so it has no record of its own. Rechecked every record against 1.1.1.1 after launch: all in place, no wildcard. The GitHub challenge row no longer says missing, the apex rule allows TXT records, and the takeover note is in the past tense.
…ages, truck test dates - sitegen/appfacts.py reads the capture's timings and limits from drive.py, recorder.py, retention.py, and cli.py with ast, like the safety facts. Figures the docs give as whole numbers must be whole. - The source reader refuses a constant bound again by any statement, or changed in place by the module or a function or class in it; a line it can't evaluate is skipped, and no arithmetic can crash or hang the build. - Every lasto command and --option a page shows in rendered code must exist in cli.py, each option checked against the command it's shown with. The options per command come from build_parser, which must keep a shape the site reads exactly. - /docs/ index, Docs in the nav, breadcrumbs with a BreadcrumbList. A docs page must sit at a path roadmap.toml reserves, and a phase's docs publish only once it's done. - A live_tested date per phase: what the site says has run at the truck follows it, since a truck test comes before approval. Stale truck claims are flagged at each phase's test. - Page dates follow data a page uses in Jinja, not the same word in prose. The site workflow runs when docs/architecture.md changes, and serve --watch watches everything the site reads.
Every pin number, wire color, and "pin N" in the chain figure comes from hardware.toml's DLC3 pins, keyed by signal, and the build fails if one it labels is missing. The caption and the text list get the no-break rules, so PCAN-USB and K-line stay on one line.
- Roadmap: Phase 2 done, built 2026-09-29, tested at the truck through 2026-10-01, approved 2026-10-01, and public, with what it delivered and what it handed on to Phases 3 and 4. - Safety pages: updated for Phase 2's changes (the durable audit log on real hardware, held records on disk under lasto drive, passive capture at the truck, the new structural tests, the serial guard's wider review) and checked claim by claim against the code. - /docs/passive-capture/: lasto drive, armed mode, storage, lasto log, the step D results, and 0x025's steering angle layout, provisional pending Phases 3 and 5. - Home: passive mode has recorded the truck's bus; the broadcast IDs row links the list.
The no-break rule kept every hyphenated word with a capital on one line, so Creader-assisted and Read-only couldn't wrap, and the roadmap's first table ran 15 px into the margin at 375 px (on the live site too). Now a hyphenated word stays together only when a part has a digit or is all capitals (OBD-II, K-line, 2026-09-26). Below 360 px, table cells get narrower side padding, so four-column tables fit at 320 px. More units (Hz, ms, s, MB, GB, kbit/s, minutes, days) stay with their numbers.
On pages without section numbers (the roadmap), each contents entry sat in the empty 36 px number column, so its text wrapped a word or two per line, on the live site too.
docs/website.md section 0e records the merges, the roadmap and Safety page updates, the passive capture docs, the build changes, Chris's decisions (the PCAN-Basic version, 0x025's byte order, coverage stated as gates, no scrubbed capture promised until one is published), and the three-round pre-commit review. site/README.md covers capture facts, the per-command CLI check, live_tested, reserved docs paths, the nobreak filter, and what serve --watch watches.
_member returned the tar member's file object after the `with` block had closed the archive, so reading it raised "I/O operation on closed file". Only Linux takes the tar.gz assets, so CI failed on PR #3 while every Windows run passed. The member is now read inside the block; the zip path already was. test_tools.py drives each path whichever machine runs it: a tar.gz and a zip from memory, every pinned release archive for both systems (each must hold its binary, MZ or ELF), a fetch into an empty cache that downloads, extracts, and sets the executable bit Linux needs, and a full build from an empty cache (the social-image fonts and images CI always renders).
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.