Skip to content

fix: superfície pós-lane wallet (snapshot OpenAPI com overspent, prosa de codespar_wallet, CLI marca overspent) - #141

Merged
fabianocruz merged 3 commits into
mainfrom
fix/surface-wallet-lane-ent1208
Sep 10, 2026
Merged

fix: superfície pós-lane wallet (snapshot OpenAPI com overspent, prosa de codespar_wallet, CLI marca overspent)#141
fabianocruz merged 3 commits into
mainfrom
fix/surface-wallet-lane-ent1208

Conversation

@fabianocruz

@fabianocruz fabianocruz commented Sep 10, 2026

Copy link
Copy Markdown
Member

Metade codespar-core de codespar/codespar-enterprise#1208 (lane wallet, PR codespar/codespar-enterprise#1204; drift de prosa é o de codespar/codespar-enterprise#933).

O que muda

  • Snapshot do OpenAPI re-buscado do servido (node scripts/openapi-spec.mjs refresh em packages/core, que é o mecanismo do repo: servido → openapi-snapshot.jsonsrc/generated/openapi.ts + operations.ts), commit próprio. As duas ocorrências de "floored at 0" no gerado somem e overspent: boolean aparece em GET /v1/consumers/{id}/wallet. O diff por caminho: esse, POST /v1/wallets/{id}/ledger (mandate_id/attempt_id/external_ref opcionais, ent#1194), /v1/sessions/{id}/execute|proxy_execute|send (texto do 403) e dois caminhos NOVOS, /v1/fees e /v1/fees/movimentar. A tabela de operações vai de 213 a 215, então o pino em api-client.test.ts sobe a 215 de propósito, e README/CHANGELOG de 0.12.0 (não publicado; npm serve 0.11.0) dizem 215/175.
  • packages/types/src/meta-tool-definitions.ts: a description de WALLET_DEFINITION passa a ser o texto servido em api.codespar.dev/meta-tools.json copiado verbatim, não parafraseado. Só prosa; WALLET_INPUT não muda.
  • packages/cli/src/commands/wallet.ts: WalletCurrency ganha overspent: boolean (nome do openapi servido) e a coluna available imprime -2500 (overspent) quando a API devolve overspent: true; a nota de rodapé explica a marca. Mínimo: nenhuma coluna nova, nenhum exit code novo.
  • @codespar/types 0.10.16 → 0.10.17 (commit próprio). O portão check-publish-drift do CI reprovou: a prosa de WALLET_DEFINITION muda o conteúdo empacotado e 0.10.16 já está no registry, que é imutável. Mesmo rito de fix(release): bump @codespar/types para 0.10.16 e recusa conteudo que muda sem bump (core#129) #133 (package.json, package-lock.json, version de DEMO_SCENARIO_MANIFEST; sem entrada de CHANGELOG). ⚠️ Uma tag de release publica TODOS os pacotes não-private juntos: a próxima tag leva types 0.10.17 junto com sdk 0.12.0, cli 0.6.1, mcp 0.5.4 e os adapters 0.4.2, que o portão já listava como "bump pending". O enterprise pina @codespar/types 0.10.14 (ent#933) e não é tocado aqui.

Evidência

Portão rc
node scripts/openapi-spec.mjs check (packages/core, COM rede: servido == snapshot 35fddb5dbab7, 215 operações) 0
npx vitest run em packages/core (19 arquivos, 190 testes; inclui openapi-snapshot.test.ts e o pino de 215 em api-client.test.ts) 0
npx vitest run em packages/types (150 testes; inclui meta-tool-definitions.test.ts e a conformance) 0
npx vitest run em packages/cli (31 testes) 0
npx turbo run typecheck --filter=@codespar/sdk --filter=@codespar/types --filter=@codespar/cli --filter=@codespar/api-types (6 tasks) 0
npx turbo run build (18 tasks) + node scripts/check-publish-drift.mjs (17 pacotes: types 0.10.17 "not on the registry — bump pending"; sdk, cli, mcp e adapters idem; api-types 0.5.0 é o waiver pré-existente de core#132) 0
node --test scripts/check-publish-drift.test.mjs 0

Não rodei turbo run build typecheck test no monorepo inteiro (memória da máquina); CI cobre. grep -rn 'floored at 0' packages devolve zero.

Fica de fora

  • packages/api-types não tem ocorrência de "floored": o gerado que a issue cita (~11689/11722) é packages/core/src/generated/openapi.ts, tratado aqui.
  • Não há tipo de resultado para codespar_wallet em @codespar/types; o drift de resultado tipado continua sendo ent#933 / ent#1199.
  • A CLI não muda exit code nem cor para overspent; só a marca na célula.
  • /v1/fees entra no cliente gerado sem exemplo ou doc de uso; é o que o servido publica.

🤖 Generated with Claude Code

fabianocruz and others added 3 commits September 10, 2026 07:34
…ger opcional, fees)

`node scripts/openapi-spec.mjs refresh` em packages/core contra
https://api.codespar.dev/openapi.json (0.3.0, 175 caminhos, 215 operações).
O que mudou no documento:

- `GET /v1/consumers/{id}/wallet`: `available_minor` deixa de ser
  "floored at 0" (as duas ocorrências do gerado somem) e ganha
  `overspent: boolean` (ent#1204 / ent#1208).
- `POST /v1/wallets/{id}/ledger`: `mandate_id`, `attempt_id`,
  `external_ref` opcionais (ent#1194).
- `/v1/sessions/{id}/execute|proxy_execute|send`: texto do 403.
- `/v1/fees`, `/v1/fees/movimentar`: caminhos novos; a tabela de
  operações e o pino do teste (`api-client.test.ts`) passam de 213 a 215,
  e README/CHANGELOG 0.12.0 (não publicado; npm serve 0.11.0) seguem.

Refs codespar/codespar-enterprise#1208, codespar/codespar-enterprise#1204,
codespar/codespar-enterprise#933

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…verspent (ent#1208)

- `packages/types/src/meta-tool-definitions.ts` WALLET_DEFINITION: a
  `description` passa a ser o texto servido em api.codespar.dev/meta-tools.json
  copiado verbatim (balance devolve `balances[]` canônico; o saldo do provedor
  viaja como `provider_balance_minor`, só reconciliação). Só prosa; o schema
  de entrada não muda. Parte do drift ent#933 / ent#1199.
- `packages/cli/src/commands/wallet.ts`: `WalletCurrency` ganha
  `overspent: boolean` (campo do openapi servido) e a coluna `available`
  imprime `-2500 (overspent)` quando a API o devolve, para o sinal negativo
  não ser o único aviso; a nota de rodapé explica a marca.

Refs codespar/codespar-enterprise#1208, codespar/codespar-enterprise#1204,
codespar/codespar-enterprise#933

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…6 é imutável)

O portão `check-publish-drift` reprovou: a `description` de
WALLET_DEFINITION muda o conteúdo empacotado e 0.10.16 já está no
registry. Mesmo rito de #133: package.json, package-lock.json e o
`version` de DEMO_SCENARIO_MANIFEST (o teste de lockstep exige igualdade).
Sem entrada de CHANGELOG, como em #133.

Uma tag de release publica todos os pacotes não-private juntos: a próxima
tag leva types 0.10.17 (com sdk 0.12.0, cli 0.6.1 e os adapters 0.4.2, que
já estavam com bump pendente).

Refs codespar/codespar-enterprise#1208

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@fabianocruz
fabianocruz merged commit 15301fb into main Sep 10, 2026
11 checks passed
@fabianocruz
fabianocruz deleted the fix/surface-wallet-lane-ent1208 branch September 10, 2026 13:15
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