Commit Graph
73 Commits
Author SHA1 Message Date
kawa 7930619404 docs(phase-02): add research and validation strategy 2026-04-10 11:43:51 +02:00
kawaandClaude Sonnet 4.6 13e098e244 docs(phase-02): research driver management phase
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-10 11:42:39 +02:00
kawaandClaude Opus 4.6 e4196f00da docs(phase-01): complete phase execution and verification
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-10 11:36:26 +02:00
kawa 4d57528963 docs(01-02): complete database schema and driver storage plan
- 01-02-SUMMARY.md: TDD execution results, decisions, self-check passed
- STATE.md: progress updated (100% phase 1), 3 decisions recorded
- ROADMAP.md: phase 1 marked Complete (3/3 summaries)
2026-04-10 11:33:20 +02:00
kawa 88d9c5f0d2 feat(01-02): wire init_db() into FastAPI lifespan startup
- Import init_db from imptune.db.database
- Call init_db() after DATA_DIR/DRIVERS_DIR creation in lifespan
- Database auto-initializes on every app startup via volume-mounted path
2026-04-10 11:31:57 +02:00
kawa dea41483b5 feat(01-02): add Peewee models, database init, and driver storage
- imptune/db/database.py: deferred SqliteDatabase with WAL + foreign_keys pragmas and init_db()
- imptune/db/models.py: full schema (Client, Driver, Printer, Icon) for phases 1-5
- imptune/storage/driver_store.py: SHA256 content-addressed DriverStore with dedup
- tests/test_db.py: 7 TDD tests covering all db and storage behaviors
2026-04-10 11:31:39 +02:00
kawa f614a3e480 docs(01-01): complete Docker scaffold and app shell plan
- 01-01-SUMMARY.md: FastAPI app shell, offline static assets, sidebar, 3-test suite
- STATE.md: advance plan to 01-01 complete, add TemplateResponse and lifespan decisions
- ROADMAP.md: mark 01-01 complete, update progress table (2/3 plans in Phase 1)
- REQUIREMENTS.md: mark INFRA-01 complete
2026-04-10 11:28:49 +02:00
kawa 34c7cb30f1 feat(01-01): add test scaffold, health and static asset tests, fix deprecated APIs
- requirements-dev.txt with pytest and httpx
- tests/conftest.py: client and tmp_data_dir fixtures
- tests/test_health.py: GET /health returns 200 with {"status": "ok"}
- tests/test_static.py: no CDN URLs in templates, dashboard returns 200
- Fix imptune/api/pages.py: use request= kwarg in TemplateResponse (Starlette compat)
- Fix imptune/main.py: replace deprecated on_event with asynccontextmanager lifespan
2026-04-10 11:26:48 +02:00
kawa 139503944b docs(01-03): complete .intunewin builder plan
- Add 01-03-SUMMARY.md with byte-level format validation results
- Update STATE.md: progress 33%, decisions recorded, session updated
- Update ROADMAP.md: phase 1 in progress (1/3 summaries)
- Mark INFRA-02 complete in REQUIREMENTS.md
2026-04-10 11:26:44 +02:00
kawa 25f82e67a2 feat(01-03): implement Python-native .intunewin file builder
- AES-256-CBC encryption with PKCS7 padding using pycryptodome
- HMAC-SHA256 of ciphertext prepended to blob (mac_key, 32 bytes)
- Encrypted blob layout: HMAC(32) + IV(16) + ciphertext
- IV is 16 bytes (corrected from STACK.md documentation error of 32 bytes)
- Detection.xml with all 8 EncryptionInfo sub-elements and correct namespace
- Inner ZIP uses DEFLATE compression; outer ZIP uses STORED compression
- All 14 byte-level tests pass including crypto roundtrip verification
2026-04-10 11:25:22 +02:00
kawa bd4e132f82 feat(01-01): create Docker scaffold, FastAPI app shell, and sidebar templates
- Dockerfile with python:3.12-slim-bookworm, curl downloads Pico CSS, HTMX, Alpine.js at build time
- docker-compose.yml with imptune_data:/data named volume and restart policy
- requirements.txt with all phase 1-5 dependencies
- imptune/config.py loading DATA_DIR/PORT from env with DB_PATH and DRIVERS_DIR derived paths
- imptune/main.py: FastAPI app with StaticFiles mount, health+pages routers, startup dir creation
- imptune/api/health.py: GET /health returning {"status": "ok"}
- imptune/api/pages.py: GET / returning dashboard.html with sync def handler
- imptune/templates/base.html: data-theme="auto", sidebar with 5 nav sections, /static/ paths only
- imptune/templates/dashboard.html: quick actions + empty state recent activity
- imptune/static/app.css: sidebar layout, active link highlight, quick action buttons
2026-04-10 11:25:08 +02:00
kawa 4d455e7b19 test(01-03): add failing tests for .intunewin byte-level format
- 14 tests covering outer ZIP structure, Detection.xml schema, key sizes
- Cryptographic roundtrip: HMAC-SHA256, AES-256-CBC decryption, file digest
- IV size assertion: must be 16 bytes (critical correction from RESEARCH.md)
- Tests serve as format specification for build_intunewin() implementation
2026-04-10 11:24:45 +02:00
kawaandClaude Opus 4.6 a8a27a44d3 docs(01): create phase 1 foundation plans
Three plans covering Docker scaffold, SQLite schema, and .intunewin spike.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-10 11:19:05 +02:00
kawaandClaude Opus 4.6 1370635e3f docs(01): add research and validation strategy
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-10 11:15:10 +02:00
kawaandClaude Sonnet 4.6 13d904f426 docs(01): research phase 1 foundation domain
Investigates Docker scaffold, Peewee schema patterns, and .intunewin
format for the foundation phase. Flags a critical IV size correction
(16 bytes, not 32 as stated in STACK.md) verified against svrooij.io.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-10 11:14:00 +02:00
kawaandClaude Opus 4.6 bd14e5cceb docs(state): record phase 1 context session
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-10 10:56:20 +02:00
kawaandClaude Opus 4.6 4ba70105d0 docs(01): capture phase context
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-10 10:56:11 +02:00
kawa 92c22dce8a docs: create roadmap (5 phases) 2026-04-10 10:45:42 +02:00
kawa 8ffcc8c675 docs: define v1 requirements 2026-04-10 10:42:40 +02:00
kawa 548ad9c8b2 docs: add domain research (stack, features, architecture, pitfalls, summary) 2026-04-10 10:36:02 +02:00
kawaandClaude Sonnet 4.6 59c384ed13 docs: complete project research
Adds STACK, FEATURES, ARCHITECTURE, PITFALLS, and SUMMARY research files
covering the full ImpTune technology stack, feature set, architecture
patterns, and critical pitfalls for the printer deployment package generator.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-10 10:34:25 +02:00
kawa 67a54673e2 chore: add project config 2026-04-10 10:26:29 +02:00
kawa 55c395a22c docs: initialize project 2026-04-10 10:25:16 +02:00