Skip to content

feat: eventhooker provider adapter layer and interpreter invariants - #4

Merged
lukisch merged 1 commit into
mainfrom
feat/eventhooker-adapter-layer
Sep 22, 2026
Merged

lukisch merged 1 commit into
mainfrom
feat/eventhooker-adapter-layer

Conversation

@lukisch

@lukisch lukisch commented Sep 22, 2026

Copy link
Copy Markdown
Member

Unifies provider adapters (claude, codex, kimi, agy, git, manual) and raw script registry into hook_master.providers. Enforces interpreter invariants (rejection of 0-byte Windows Store execution aliases) and timeout effectiveness validation (> 0, kill verification) with self-tests.

@lukisch

lukisch commented Sep 22, 2026

Copy link
Copy Markdown
Member Author

Unabhängige Verifikation (claude-sonnet, eigener Worktree, Head 6a687df, Basetemp außerhalb, kein pip install -e):

  • Suite: PYTHONPATH=src pytest → 100/100 passed.
  • Invariante (a) 0-Byte-Alias, generisch (nicht namensgebunden): synthetische 0-Byte-Datei mit beliebigem Namen wird von validate_interpreter() korrekt als InterpreterAliasError erkannt (Größenprüfung, nicht nur python3/pwsh-Namensliste). Reale python3-Alias auf diesem Host (WindowsApps\python3.EXE, 0 Byte) ebenfalls korrekt erkannt.
  • Invariante (b) Timeout tötet wirklich: verify_timeout_kills(timeout=0.5) gegen einen 10s-Sleep-Subprozess → True, gemessen 0.53s (nicht die vollen 10s).
  • run_self_test() ist in cli.py/doctor.py vor der eigentlichen Registrierung verdrahtet — deckt Ticketpunkt 3(c).
  • raw_scripts.py: alle drei kanonischen Skripte (guards.py, token_budget_guard.py, notaus_wake_check.py) sind über die Provider-Schicht registriert statt per hartem Pfad — Ticketpunkt 2 erfüllt, einzige Implementierung (kein Duplikationsrisiko innerhalb dieses Repos).

hook-master selbst ist saubere, funktionierende Grundlage. Merge folgt (Reihenfolge: hook-master zuerst, dann die zwei Konsumenten — siehe getrennte Kommentare dort zur eigentlichen Kernfrage des Tickets).

CI-Fail ist kontobezogen (GitHub-Billing-Gate, "recent account payments have failed"), kein Codebefund — bestätigt über gh api .../actions/runs/.../jobs.

@lukisch
lukisch merged commit a798494 into main Sep 22, 2026
0 of 13 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant