Project progress

Document versionDateSummary
v12026-07-18Initial progress record

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.

DatePBI or taskOutcomeVerificationNotes
2026-07-18Planning foundationProduct, architecture, backlog, rules, prompts, and operational records establishedDocumentation structure and reference reviewImplementation has not started
2026-07-18PBI-001Repository source layout reserved with explicit ownership per arch-v0.1.0 section 5Layout review against architectureEmpty directories, no README files by preference
2026-07-18PBI-002Root CMake project with C language declaration and target-scoped component optionsNinja configure with GCC and Clang, in-source guardFirst buildable target arrives in PBI-003
2026-07-18PBI-003pet_core static library and pet::core alias with strict C99 contract, no allocatorGCC and Clang build, -std=c99, nm allocator scan, standalone buildMinimal version surface only, domain types deferred to PBI-014
2026-07-18PBI-004Linux GCC and Clang CMake presets with build, test, and compile-commands outputGCC and Clang configure and build via presetsFull strict gate tooling arrives in PBI-005 through PBI-010
2026-07-18PBI-005.clang-format baseline with format and format-check targets over project codeformat-check target passes on GCC and Clang buildsGenerated and third-party files excluded
2026-07-18PBI-006pet::warnings interface target, strict GCC/Clang set, MSVC mapping, warnings-as-errorsGCC and Clang build clean under -WerrorLinked PRIVATE so consumers do not inherit
2026-07-18PBI-007CTest suite mirroring arena test architecture with pinned cmocka-1.1.7 FetchContentGCC and Clang build and run pet_tests, core-only build needs no cmockaNo -Wl,—wrap, cmocka treated as external
2026-07-18PBI-008cppcheck target over project sources with C99 model, fails on findingscppcheck target passesDependencies and build outputs excluded
2026-07-18PBI-009.clang-tidy baseline with parallel run-clang-tidy tidy targettidy target passes, analyses project TUs onlyFetched cmocka TU excluded by regex
2026-07-18PBI-010pet::sanitisers interface with ASan and UBSan presets, private to host targetsASan and UBSan build and test pass, UBSan halt confirmed, ordinary builds cleanGCC/Clang only, fails clearly elsewhere
2026-07-18PBI-011pet::coverage plus coverage and valgrind audit targets with Gcovr reports under _reportsCoverage report measures src only with branch data, Valgrind 0 errorsAudit gate tools, GCC coverage only
2026-07-18PBI-012Fast, strict, and audit gates via gate.py over cmake -P, minimum CMake raised to 3.25./gate.py fast, strict, and audit all passWorkflow presets rejected: single configure step only
2026-07-18PBI-013Host-conditioned Windows MSVC and Clang presets with MSVC C17 modeJSON valid, Windows presets hidden on Linux, Linux stays C99, strict gate passesWindows designed but unverified, completes E01
2026-07-18Documentation linksMilestones filename corrected and wikilinks converted to relative Markdown links82 relative links resolved, 0 brokenObsidian graph view has no dangling nodes
2026-07-18PBI-014Public status, domain types, and caller-owned fixed-capacity world contractStrict gate passed, type and storage tests, allocator scan cleanADR-001 records the memory model, pet_world_init implemented in PBI-015
2026-07-18PBI-015pet_world_init validates the whole configuration before writing anythingStrict gate passed, 9 tests covering boundaries, rejection, and determinismRejected input leaves the destination untouched
2026-07-18PBI-016pet_world_validate, pet_world_reset, and PET_WORLD_EMPTY complete the lifecycleStrict and audit gates passed, 32 tests, 100% line and 96.4% branch coverageCompletes E02, reset needs no deallocation
2026-07-19PBI-017PetTimeMs, bounded pet_world_update, overflow rejection, and world clock stateStrict and audit gates passed, 55 tests, 22 added, Valgrind 0 errorsADR-002, PetWorld 64 bytes, within bound
2026-07-19PBI-018PetActivity idle to curious transition at PET_CURIOUS_AFTER_MSStrict and audit gates passed, 71 tests, 16 added, boundary and split-delta casesPetWorld 72 bytes, bound raised to 96
2026-07-19PBI-019Caller-owned PetRandom with seed API and bounded drawStrict gate passed, 93 tests, 14 added, golden vectorsADR-003 records SplitMix64 and bias trade-off
2026-07-19PBI-020Replay, rejection, long-sequence determinism, and update-order evidenceStrict and audit gates passed, 93 tests, 8 added, Valgrind 0 errorsCompletes E03, bounded name scan only
2026-07-19PBI-021PetAction and pet_world_apply_action with documented no-opStrict and audit gates passed, 16 action testsPET_ACTION_NONE is zero, no public table ABI
2026-07-19PBI-022Internal transition tables with activity and expression regionsStrict and audit gates passed, greet reaches attentive and happyADR-004, PetWorld 88 bytes
2026-07-19PBI-023Call order, table order, composition, rejection, and replay evidenceStrict and audit gates passed, 127 tests, 34 added, Valgrind 0 errorsCompletes E04, no cascade per update
2026-07-19PBI-024PetSnapshot public presentation contract addedSnapshot tests passADR-005 records field policy
2026-07-19PBI-025pet_world_snapshot derives a copied, read-only viewStrict and audit gates passedNo world pointer exposed
2026-07-19PBI-026Snapshot coverage and lifecycle evidence completed145 tests, Valgrind 0 errorsCompletes E05, PetSnapshot 56 bytes
2026-07-19PBI-027pet_headless diagnostic host printing snapshot state through the public API onlyStrict gate passed, host builds with tests off and Core builds with headless offLinks pet::core only, no internal header, no platform clock
2026-07-19PBI-028Scripted eight step scenario with a repeatability check registered as pet_headless_scenarioStrict gate passed, 2 CTest tests, scenario asserts state not wordingCompletes E06, diagnostic text stays uncontracted
2026-07-19PBI-029Public API failure audit over all nine operations, recorded in architecture 10.5Strict and audit gates passed, 148 tests, 3 added and 2 strengthened, 100% line, function, and branch coverageNo behaviour defect found, reset recovery and version storage were the real gaps
2026-07-19Verification toolingCheck logic moved from CMake to tools/verify Python, gate.py orchestrates directly, five .cmake modules removedFast, strict, and audit gates pass, core-only build passesCMake keeps the build graph only, gates compose by list containment
2026-07-19PBI-030tools/verify/symbols.py scans the compiled Core archive against a closed per-toolchain allowlistStrict gate passed, forbidden symbols and budget overrun both demonstrated to failGCC allowed nothing, Clang allowed memcpy and memset x2, MSVC dumpbin unavailable
2026-07-19PBI-031tools/verify/headers.py compiles each discovered public header alone under strict C99Strict gate passed, 8 headers under GCC and Clang, include-order break demonstrated to failGenerated version.h covered, needs a filler declaration for C99
2026-07-19PBI-032pet_alloc_probe plus tools/verify/alloc.py verify zero heap usage under ValgrindAudit gate passed, probe reports 0 allocations, deliberate malloc demonstrated to failProbe links no sanitiser or coverage, both allocate. Windows unavailable
2026-07-19Tooling contractCMake and Python boundary recorded in code rules 10.1 and architecture 7.3, quality check contracts reworded from targets to gate and script deliveryFast, strict, and audit gates pass, reference search clean in current guidanceNo CMake check target restored, general architecture left tool agnostic
2026-07-19Review fixesAllocation probe observes state through pet_world_snapshot instead of PetWorld fieldsProbe exits 0, 0 allocations, audit gate passesEvidence no longer depends on the authoritative layout
2026-07-19PBI-033Support matrix evidence collected in architecture 10.6, verified toolchain recorded in 7.2, tools/verify/matrix.py added as a release-time stepAudit gate passed from clean, declared sizes match under GCC and Clang, LIM-002 and LIM-003 recordedLinux GCC and Clang runtime tested, Windows unverified, embedded portable by design
2026-07-19PBI-034v0.1.0 release review completed, exit criteria ticked, milestone and epic statuses closedAudit gate passed, 148 tests plus the headless scenario, 100% line, function, and branch coverageCompletes E07 and release v0.1.0, architecture accepted, V0 milestone now in progress