Open P0 implementation defects identified after V4 review
ledger-service uses JSON.stringify for canonical payload/event strings while approved hash path requires RFC 8785 JCS; DB and application can hash different bytes.
Trusted append function must bind canonical event JSON field-by-field to the exact stored columns; hash of Event A must never be accepted while storing Event B metadata.
pgcrypto/digest runtime dependency must be explicit and fail closed if unavailable.
SECURITY DEFINER owner/search_path/schema permissions need full hardening; dedicated NOLOGIN owner must actually own the function and untrusted writable schemas must not be in search_path.
PostgreSQL idempotency duplicate handling must not rely on catching 23505 then SELECT inside the same aborted transaction; use ON CONFLICT DO NOTHING RETURNING or equivalent.
startActionExecution must explicitly handle EXISTING_EXECUTING, EXISTING_UNKNOWN and RETRY_ALLOWED, not only success/conflict.
Existing successful idempotent request must return the real previous execution/result reference, not a synthetic execution id.
External fact transition evidence table must actually be populated atomically with state transitions.
External fact verification must validate evidence/authenticity, not merely non-empty strings/state flag.
Passport cryptographic verification remains unimplemented in V4; minimum runnable Ed25519 verification is required before claiming crypto enforcement implemented.
Trusted issuer registry must not be self-registerable by ordinary runtime/NCA code.
Issuer signature metadata must be separate from the agent identity key algorithm.
Resource budget path currently fails open when required resource_cost is absent; required dimensions must fail closed.
Financial action with missing amount/currency/budget/payment-intent context must fail closed.
External action with external=true but missing action_type must fail closed.
ApprovalDecision ID presence is not authorization; trusted action entrypoint must validate/consume exact ApprovalDecision before side effect.
payment_verifier must not have unrestricted UPDATE verification_state authority; use restricted trusted transition functions.
Financial storage semantics must not mix integer minor units with DECIMAL major-unit representation.
Placeholder tests such as expect(true).toBe(true) are not tests; use real integration tests or test.skip with explicit reason.
Reported FULL SOURCE does not match visible evidence scope where some listed files were not supplied.
Reproducible build remains false without lockfile and actual dependency resolution.
Adrian may mark only FIX_IMPLEMENTED_IN_SOURCE until Lucas independently verifies and execution evidence exists.
Next required deliverable
ADRIAN IMPLEMENTATION PACKAGE V5:
actual complete source artifact or repository commit
inspectable complete file manifest
package/commit SHA-256 when available
exact package.json + lockfile when generated
real crypto implementation
corrected JCS trusted append path
corrected idempotency transaction flow
external fact evidence enforcement
payment verifier authority boundary
non-placeholder tests
Then LUCAS STATIC VERIFICATION V5 against the actual artifact.
No-recheck rule
Do not repeat already verified checks without state change. Re-test only changed code/runtime/database/deployment/provider/credentials/policy/security/error/integration state and required regressions.
Truth boundary
This snapshot records architecture and implementation-review state only. It does NOT claim deployment, runtime verification, production verification, client acceptance, or payment.