Commit Graph

14 Commits

Author SHA1 Message Date
efb6988719 fix: remove host FDE requirement, fix remaining audit partials
Host FDE is no longer required — only guest (ISO) FDE matters per owner
direction. The build host's security posture is the owner's responsibility.
The Docker container already isolates the build process.

Changes:
- run.sh: Removed check_host_fde() function and its call in iso build path
- run.sh: Fixed SB key chmod in inline SECUREBOOT_HOOK (C-04 complete)
- run.sh: Fixed cache manifest format — no longer capped at 20 files (H-09)
- docs/PRD.md: Removed FR-011 Host FDE, renumbered FR-011 = Secure Boot/UKI
- docs/COMPLIANCE.md: Replaced fraudulent  summary with honest aspirational
- config/hooks/installed/encryption-validation.sh: lsblk discovery (H-06)
- src/security-hardening.sh: Synced WiFi blacklist with live hook (M-12)
- tests/: Updated 3 test files for guest encryption instead of host FDE
- AGENTS.md, README.md, audit docs: Removed host FDE references
- STATUS.md: Updated for current state
- JOURNAL.md: Added ADR-017 (host FDE not required)

782 tests pass, 0 fail, 0 shellcheck warnings.

Reference: DeepReport-2026-05-08.md C-02, C-04, H-06, H-09, M-12

💘 Generated with Crush

Assisted-by: GLM-5.1 via Crush <crush@charm.land>
2026-05-08 14:28:04 -05:00
8b5714971e fix: update tests and JOURNAL for Session 8 remediation
- build-iso test: Check for fine-grained capabilities instead of
  --privileged flag (removed in previous commit)
- JOURNAL.md: Session 8 entry with ADR-014/015/016 and lessons
- STATUS.md: Current as of this commit

786 tests, 0 failures, 0 shellcheck warnings.

💘 Generated with Crush

Assisted-by: GLM-5.1 via Crush <crush@charm.land>
2026-05-08 12:25:16 -05:00
ccab1e2b19 docs: add E2E boot test results to JOURNAL.md
QEMU/KVM serial console boot test: 1440 lines captured.
- Full boot from UEFI to login prompt (~9 seconds)
- 0 failed services, 0 kernel panics
- Security stack active: AppArmor, IMA/EVM, auditd, AIDE, BPF LSM
- Serial console ttyS0 @ 115200 confirmed working

💘 Generated with Crush

Assisted-by: GLM-5.1 via Crush <crush@charm.land>
2026-05-07 11:18:35 -05:00
46dabde629 fix: resolve final PRD alignment issues, update docs
PRD Alignment Fixes:
- disable-package-management.sh: Keep dpkg-query executable for audit
  tools (was disabled despite comments claiming it was preserved)
- run.sh: Replace silent FDE skip with explicit warning message
  (PRD FR-011 says mandatory but host has no LUKS)
- run.sh: Fix checksum generation to use post-rename filename
  (was referencing live-image-amd64.hybrid.iso instead of
  knel-football-secure.iso)

Documentation Updates:
- STATUS.md: Add FR-012 to alignment matrix (was missing)
- STATUS.md: Fix stale requiretty reference (was removed)
- STATUS.md: Update PRD coverage to 12/12
- JOURNAL.md: Replace audit entry with comprehensive fix entry

💘 Generated with Crush

Assisted-by: GLM-5.1 via Crush <crush@charm.land>
2026-05-07 09:13:29 -05:00
reachableceo
94abcfffda fix: resolve 11 test failures, clean up stale files, add NVMe build cache
Test Fixes:
- Fixed grep regex matching `test:iso)` instead of `iso|iso:demo)` by
  using `grep -F` for literal string matching in 3 test files
- Increased grep context from -A 5 to -A 15 for FDE reference tests
  since FDE mention is 9+ lines into the iso command block

Stale Files:
- Deleted test-iso.sh (merged into run.sh in Session 4)
- Deleted verify.sh (orphaned, never referenced anywhere)

Documentation:
- Fixed stale test file references in COMPLIANCE.md
- Updated TEST-COVERAGE.md to remove "delegates to test-iso.sh"
- Added JOURNAL.md entry with full audit findings
- Updated STATUS.md timestamp

NVMe Build Cache (from previous session, was uncommitted):
- Added Docker volume `knel-football-cache` for build caching
- Added `clean:cache` and `cache` commands to run.sh
- Cache preserves bootstrap + package downloads between builds

Test Results: 786 pass, 0 fail, 16 VM skip

💘 Generated with Crush

Assisted-by: GLM-5.1 via Crush <crush@charm.land>
2026-05-07 07:51:56 -05:00
Charles N Wyble
2ade926830 docs: add ADRs for security audit findings (FINDING-005, 006, 007, 008)
Added Session 6 entry documenting external security audit implementations:

ADR-010: User-Initiated KDF Conversion
- Debian partman-crypto doesn't support preseed KDF type config
- Solution: post-install conversion script with login reminders
- Users manually convert LUKS2 from PBKDF2 to Argon2id

ADR-011: Package Version Pinning
- Docker packages pinned for reproducible builds
- Ensures audit results match deployed systems

ADR-012: Multi-Layer Test Coverage
- Tests at source, implementation, and documentation layers
- 16 functional tests for encryption parameters
- Integration tests catch cross-file inconsistencies

ADR-013: Single Username Convention
- Standardized on 'football' as primary user account
- Eliminates runtime failures from username mismatches

Reference: External security audit dated 2026-02-20

💘 Generated with Crush

Assisted-by: GLM-4.7 via Crush <crush@charm.land>
2026-02-20 11:18:45 -05:00
Charles N Wyble
747d58e6ec docs: add permanent lessons to JOURNAL.md to prevent recurring mistakes
Added explicit "PERMANENT LESSONS FOR FUTURE SESSIONS" section documenting:
1. Always update callers when modifying source functions
2. Verify documentation matches code reality
3. Cross-reference before committing

These patterns have caused bugs multiple times.

💘 Generated with Crush

Assisted-by: GLM-4.7 via Crush <crush@charm.land>
2026-02-19 09:19:22 -05:00
Charles N Wyble
1070f9bf67 docs: update STATUS.md and JOURNAL.md for session 5 bug fixes
- Add JOURNAL entry for critical hook bug fixes
- Update STATUS.md to reflect ISO rebuild in progress
- Fix test count (110 not 111)
- Update metrics with correct commit count

💘 Generated with Crush

Assisted-by: GLM-4.7 via Crush <crush@charm.land>
2026-02-19 09:15:50 -05:00
Charles N Wyble
8c65d174d3 docs: update STATUS.md and JOURNAL.md for session 4
- Add ADR-009 for script consolidation (run.sh as single entry point)
- Update STATUS.md to reflect complete state (ISO built, VM framework merged)
- Document lessons learned from libvirt group requirement

💘 Generated with Crush

Assisted-by: GLM-4.7 via Crush <crush@charm.land>
2026-02-17 15:35:27 -05:00
Charles N Wyble
3b5558c031 fix: improve test-iso.sh for QEMU fallback and update status
- Replace libvirt group check with actual virsh access test
- Add QEMU direct execution fallback when virt-install fails
- Handle both virsh and QEMU pidfile for VM status
- Update STATUS.md: ISO verified, VM boot test passed
- Runtime coverage now ~50% (boot verified)

💘 Generated with Crush

Assisted-by: GLM-4.7 via Crush <crush@charm.land>
2026-02-17 14:23:19 -05:00
Charles N Wyble
d4e0f5b4af docs: update STATUS.md and JOURNAL.md with session progress
- STATUS.md: ISO rebuild in progress, updated next actions
- JOURNAL.md: Added session 2 entry for FIM/audit/SSH work, ADRs 005-007

💘 Generated with Crush

Assisted-by: GLM-4.7 via Crush <crush@charm.land>
2026-02-17 12:44:05 -05:00
Charles N Wyble
274ad90731 docs: track JOURNAL.md in version control
Add JOURNAL.md to version control. This file serves as
the AI agent's long-term memory and learning repository.

Purpose:
- Capture insights and patterns discovered
- Document lessons learned from sessions
- Record architectural decision records (ADRs)
- Enable knowledge persistence across sessions

Format:
- Append-only (never delete or modify existing entries)
- Dated entries with clear sections
- Cross-references to related files

This file is maintained by AI agents working on the project
and provides context for future sessions.

💘 Generated with Crush

Assisted-by: GLM-5 via Crush <crush@charm.land>
2026-02-17 10:12:54 -05:00
c1d8c5def6 chore: clean up root directory and consolidate documentation
Remove obsolete documentation files and consolidate into docs/ directory. Remove redundant test scripts (functionality will be folded into run.sh). Update AGENTS.md with SDLC workflow. Update PRD.md with tier0 architecture clarification. Update README.md to reflect clean directory structure.

Changes:
- Delete: BUILD-COMPLETE.md, BUILD-SUMMARY.md, RESUME.md, SESSION-CLOSED.md
- Delete: FINAL-SECURITY-COMPLIANCE-REPORT.md, QUICK_START.md, JOURNAL.md
- Move: TEST-COVERAGE.md, VERIFICATION-REPORT.md to docs/
- Delete: test-iso.sh, test-runner.sh (will fold into run.sh)
- Update: AGENTS.md with SDLC workflow section
- Update: PRD.md with tier0 architecture clarification and diagram
- Update: README.md to reflect clean directory structure

Root directory now contains only: AGENTS.md, README.md, PRD.md, Dockerfile, run.sh

💘 Generated with Crush

Assisted-by: GLM-4.7 via Crush <crush@charm.land>
2026-01-29 12:07:28 -05:00
927d2053bf docs: update JOURNAL with mandatory requirements implementation session
Document 2026-01-28 session including FR-001 (Full Disk Encryption) and FR-007 (Password Complexity) addition, configuration changes, hooks created, security hardening enhancements, ISO build process, and verification results.

💘 Generated with Crush

Assisted-by: GLM-4.7 via Crush <crush@charm.land>
2026-01-29 10:00:33 -05:00