Project progress

Document versionDateSummary
v12026-07-18Initial progress record
v22026-07-20Record completion of E08 architecture planning
v32026-07-24Archive the completed v0.2.0 progress and clear the active table
v42026-07-27Record completed v0.3.0 work through E20
v52026-07-27Refine E20 around the T-Display family and selectable board variants
v62026-07-28Record E21 component selection and desktop reader isolation
v72026-07-28Record E21 completion after the embedded and probe coverage boundaries
v82026-07-28Record E22 completion after the greet presentation rule
v92026-07-28Record compact documentation portal route titles

This append-only table records completed project tasks. Add one concise row after a task satisfies its acceptance criteria. Do not record incomplete work as progress.

Completed v0.1.0 progress is archived in release v0.1.0. Completed v0.2.0 progress is archived in release v0.2.0. The table below records work from v0.3.0 onwards.

DatePBI or taskOutcomeVerificationNotes
2026-07-27E18, PBI-066, PBI-067, PBI-068Defined, implemented, tested, and documented the root project command for build, test, desktop run, strict verify, clean, dry-run, registry selection, and all compositions./pet.py test all passed from clean state with 10 desktop-sdl and 7 headless tests. ./pet.py verify all passed the strict gate over both compositions under GCC, Clang, ASan, and UBSan, including 32 project command tests, Cppcheck, Clang-Tidy, symbols, boundaries, assets, and 19 desktop and 14 headless public headersAdded pet.py and DEVELOPMENT.md, refreshed the README, moved verification policy to config/, retained root Clang and CMake discovery files, recorded explicit unverified Windows TODOs, and deferred board selection to PBI-074 and PBI-075
2026-07-27E19, PBI-069, PBI-070, PBI-071, PBI-072Accepted ADR-008, added project-owned cmocka and SDL source overrides, documented CLI and user preset workflows, and closed LIM-005Local checkout builds passed 7 headless and 10 desktop SDL tests. ./pet.py verify all passed the pinned-default strict gate over both compositions, including 7 dependency override tests and the existing diagnostic and Core boundariesPinned fetch remains the default. Package managers, arbitrary layouts, and offline-first configuration without prepared checkouts remain out of scope
2026-07-27E20, PBI-073, PBI-074, PBI-075, PBI-076Added the reusable firmware app, non-touch T-Display S3 board contract, and minimal ESP-IDF esp32s3 build, then narrowed LIM-012 to hardware runtime evidenceESP-IDF v6.0.2 with Xtensa GCC 15.2.0 produced the 0x23cb0-byte firmware image; Core and firmware compile lines stayed C99 and SDK-free. ./pet.py verify all passed both hosted compositions under GCC, Clang, ASan, and UBSan with 10 desktop and 7 headless tests, 64 Cppcheck sources, 6 boundaries over 78 files, and 21 desktop and 16 headless public headersThe build is cross-compile evidence only; the board was not flashed or run, and display, buttons, PSRAM, and other hardware facilities remain unverified
2026-07-27E20 board-family refinement, PBI-074, PBI-075Established boards/t_display as the stable family boundary, added explicit variant selection, and kept s3 as the only implemented variant and release claimThe selector tests accepted s3, derived ESP-IDF target esp32s3, and rejected undeclared classic; ESP-IDF v6.0.2 rebuilt the 0x23cb0-byte image. ./pet.py verify all passed both hosted compositions under GCC, Clang, ASan, and UBSan with 10 desktop and 7 headless tests, 64 Cppcheck sources, 6 boundaries over 79 files, and 22 desktop and 17 headless public headersADR-009 and the active release documents describe the family-and-variant decision directly. Classic T-Display remains unimplemented and unverified
2026-07-28E21, PBI-077, PBI-078Selected all four frontend-neutral components for embedded build evidence, isolated the desktop asset reader behind PET_ASSETS_STDIO_READER, accepted ADR-010 for shared build interface reuse, and recorded LIM-013ESP-IDF v6.0.2 compiled and archived pet_manifest, pet_assets, pet_presentation, and pet_layout for esp32s3 and relinked the 0x23cb0-byte image; the embedded compile database showed every project translation unit at C99 with -Werror and no SDK include, and no reader_stdio.c entry. ./pet.py verify all passed both hosted compositions under GCC, Clang, ASan, and UBSan with 10 desktop and 7 headless testsThe components are compiled and archived, not executed. No embedded asset storage or reader exists, which LIM-013 records
2026-07-28E21, PBI-079, PBI-080Added component, filesystem, network, and display include boundaries, an embedded compile database boundary that reports unavailable evidence rather than passing, and an allocation probe coverage check, then narrowed LIM-003 to probe depthpython3 tools/verify/boundaries.py: 12 boundaries held over 209 source files. python3 tools/verify/embedded.py: 11 project sources held the embedded boundary, and an absent build reported unavailable and failed under --require. python3 tools/verify/probe.py: 9 public Core operations exercised, with stale and unknown exclusions rejected. 36 gate tests and 105 verification tests passed, and ./pet.py verify all passed both compositions under GCC, Clang, ASan, and UBSanThe embedded boundary reads the compile database the ESP-IDF build wrote, so it is only as current as the last idf.py build. The probe check compares names rather than depth
2026-07-28E22, PBI-081, PBI-082Decided the greet presentation rule in ADR-011, shortened PET_HAPPY_FOR_MS to 10000 against an unchanged 30000 attentive dwell, and closed LIM-010A Core test now asserts that the happy dwell ends before the attentive one, a presentation test drives a greeted world and reads the activity_attentive role, and the headless scenario shows the expression settling while the pet is still attentive. ./pet.py verify all passed both compositions under GCC, Clang, ASan, and UBSan with 10 desktop and 7 headless testsThe role priority is unchanged, so an expression still answers ahead of an activity. A greet now reads as a briefer happy reaction than in v0.2.0
2026-07-28Documentation portal landing pageAdded the repository-owned Pet landing page with catalogue metadata and published it through Quartz Server SyncThe landing checks and complete Quartz Server Sync gate passed. Server release 20260728-190557-851180533-pet emitted 152 files, and the Pet landing, spec, and four tag URLs returned HTTP 200The full Pet product gate was not run because no product code, build, test, or platform contract changed
2026-07-28Documentation publication metadataAdded explicit title, content-type tags, and public draft state to all 55 Pet Markdown documents, with an H1 title fallback in QSSLocal and server QSS gates passed, a real build filtered draft: true, and public checks matched all 55 titles, all tag sets, and 15 tag pagesDescriptions remain curated. The Pet product gate was not run because no product source or build contract changed
2026-07-28Portal navigation titlesStandardised all 55 Pet metadata titles as lower-case labels no longer than 40 characters while preserving full authored headingsThe title migration resolved every file, and the QSS gate passed 14 lifecycle, 9 adapter, and 4 portal index testsThe full Pet product gate was not run because no product source or build contract changed
2026-07-28Documentation route titlesAligned all 55 Pet navigation labels with compact file and directory routes, with ADR labels limited to a number and two topic termsThe migration was idempotent; metadata and expected-title validation passed for all 55 files; comparison with the pre-change archive proved that content outside title lines was unchangedFull authored headings remain unchanged, and the H1 fallback remains available for future pages without an authored title