piker/ai/prompt-io/opencode/20260828T013057Z_6ca6ab2a_p...

45 lines
1.5 KiB
Markdown

---
model: openai/gpt-5.6-sol
service: opencode
timestamp: 2026-08-28T01:30:57Z
git_ref: 6ca6ab2a
diff_cmd: git diff HEAD~1..HEAD
---
## Prompt
Become familiar with Piker's clearing, accounting, order-control,
and trade-ledger tracking subsystems in deep detail while fixing a
paper-engine crash. The supplied traceback showed
`TransactionLedger.write_config()` calling
`SymbologyCache.search()`, followed by RapidFuzz raising
`TypeError: object of type 'MktPair' has no len()` after a paper fill.
## Response
Fixed the crash at the symbology-cache contract boundary.
`SymbologyCache.search()` now fuzzy-matches the selected table's
string keys and resolves each matched key back to its struct value.
RapidFuzz therefore never receives `MktPair` values as sequences,
and native market-ID aliases remain intact in search results.
> `git diff HEAD~1..HEAD -- piker/data/_symcache.py`
Added a regression that recreates the failing paper-ledger write with
an unqualified Binance perpetual FQME. It also checks a native market-ID
alias, preventing a weaker `processor=str` workaround that would lose
the actual matched key.
> `git diff HEAD~1..HEAD -- tests/test_accounting.py`
Verification:
`./py313/bin/python -m pytest -p no:xonsh -q -x --tb=short
--no-header tests/test_accounting.py::test_account_file_default_empty
tests/test_accounting.py::test_paper_ledger_fuzzy_qualifies_mktmap_keys`
Result: `2 passed in 0.02s`.
`git diff --check` also passed. Ruff was not available in the existing
`py313` environment, so no environment provisioning was performed.