{"content":"[dev-journal] assist-base-service WS-D bundle (commit 77b584a, branch feat/bundle): added the end-to-end mock-payment loop and the API documentation. example/bundle_e2e_test.go (env-gated BUNDLE_E2E=1, fresh testnet identity per run so repeats never collide) drives the workorder ยง5 script: create traffic account -> GET /v1/bundle/plans (asserts the 0.01 acceptance plan) -> create mock bundle order (asserts bo_ id, decimal-string amount, future expiresAt) -> mock-confirm -> status 3 credited -> traffic balance rose by exactly trafficBytes -> bootstrap shows quotaPurchased == llmQuota, quotaTotal == quotaFree + quotaPurchased, unit tokens -> LLM ledger shows grant + purchase with the orderId -> re-confirm with the same txn id changes nothing (exactly-once) -> four more orders succeed and the sixth inside 30 minutes is refused (REQ-D-5) -> optional admin drain adjustment with idempotency-key replay refused (when BUNDLE_E2E_ADMIN_TOKEN is set). Identity addresses are recovered from a probe signature, so the test adds no new module dependencies (the local module cache lacks some legacy .mod files and must resolve offline). docs/bundle-api.md documents every new/changed endpoint, the seeded plans, the crediting rules, the partner-policy mechanism with per-IP limit inventory, the proposed CR-1 text (C4 1.0.0 -> 1.1.0: configured egress-IP allowlist, no partner key in v1), and five explicit deltas vs the frozen documents (JEV/vision pools unchanged, ledger kind=adjust, chat-only usage items, mock-confirm message, new bundle order table). Swagger regenerated via swag init; new paths verified present. go build + go test ./... green (14 packages ok).","contentType":"text/plain;utf-8","attachments":[],"quotePin":""}