37 lines
1.7 KiB
Markdown
37 lines
1.7 KiB
Markdown
|
|
|
||
|
|
## T03 — Plugin System Framework — COMPLETE ✅
|
||
|
|
**Date**: 2026-06-29 01:20
|
||
|
|
**Commit**: 7a5a48f (pushed to Forgejo)
|
||
|
|
**Tests**: 47/47 T03 tests pass, 103/103 full suite pass
|
||
|
|
**Coverage**: 85.92% for plugin modules (target: 85% ✅)
|
||
|
|
**Migration**: 0003_plugin_system.py applied (plugins + plugin_migrations tables)
|
||
|
|
|
||
|
|
### Files Created (12 new)
|
||
|
|
- app/plugins/__init__.py, manifest.py, base.py, registry.py, migration_runner.py
|
||
|
|
- app/plugins/builtins/__init__.py, test_sample.py, migrations/0001_test_plugin.sql, migrations/0001_bad_migration.sql
|
||
|
|
- app/models/plugin.py, app/schemas/plugin.py, app/services/plugin_service.py, app/routes/plugins.py
|
||
|
|
- alembic/versions/0003_plugin_system.py
|
||
|
|
- tests/test_plugins.py (47 tests, 14 ACs + 33 unit tests)
|
||
|
|
|
||
|
|
### Files Modified (8)
|
||
|
|
- app/main.py (plugins router + registry init in lifespan)
|
||
|
|
- app/models/__init__.py, app/routes/__init__.py, app/schemas/__init__.py, app/services/__init__.py
|
||
|
|
- tests/conftest.py (plugin tables in TRUNCATE list)
|
||
|
|
|
||
|
|
### Bugs Fixed by Subagent
|
||
|
|
1. Unterminated f-string in registry.py
|
||
|
|
2. Migration runner DB connection visibility (now uses session's own connection)
|
||
|
|
3. Route unregistration by path match (FastAPI wraps routes differently)
|
||
|
|
4. Dollar-quote SQL splitting (flush after closing $$)
|
||
|
|
5. AC11 assertion type (dict vs string for HTTPException detail)
|
||
|
|
|
||
|
|
### Verification (Orchestrator Independent)
|
||
|
|
- pytest tests/test_plugins.py -v: 47/47 PASS
|
||
|
|
- pytest tests/ -v: 103/103 PASS (zero regressions)
|
||
|
|
- Coverage: 85.92% (manifest 100%, base 88%, registry 88%, migration_runner 79%)
|
||
|
|
- Migration 0003 applied via alembic upgrade head
|
||
|
|
- No forbidden patterns found
|
||
|
|
- Pushed to Forgejo: 6bf0746..7a5a48f
|
||
|
|
|
||
|
|
### Next: T07a (Frontend SPA Shell) ∥ T09 (KI-Copilot API) — parallel delegation
|