1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
# Recovery 01: real listed-ETF ingestion and failure semantics
Use strategy-go/glm-5.3-flash. One integration writer only. Scope this repository. No deployment, service restarts, user DB reads/writes, credentials/Tunnel access, global skill modifications, commits or pushes. Existing production must remain unchanged. External market-data reads permitted; no fabricated results.
Before implementation call native skill tool for systematic-debugging, test-driven-development, writing-plans. These are installed under .opencode/skills/. Record actual skill tool calls. Load verification-before-completion before handoff. If discovery fails, read these exact local SKILL.md files and explicitly report fallback.
User defect: cn.159399 cash-flow ETF dataset2025-12-31..2026-09-17 daily unadjusted OHLCV fails with Eastmoney RemoteDisconnected followed by 'tencent source has no listed-ETF daily adapter'. Canonical requested symbol is159399; preserve identity and classify ETF correctly. Do not disguise fallback provider, units, adjustment or incomplete date coverage. Stock-only live probe success does not validate ETF.
1. Read current architecture and code; write a concise evidence-based reproduction/repair plan in docs/recovery-01-plan.md. Reproduce provider failure or actual ETF data fetch with bounded requests using real upstreams. Identify available genuine provider ETF endpoints and returned schema, units and adjustment behavior. If no viable adapter can be verified, report blocker instead of inventing bars.
2. Write failing tests for actual ETF provider response shapes, unavailable provider, timeout, canonical identity and truthful provenance. Implement smallest correct adapter/failure handling change in worker and backend if needed; do not redesign UI during this task. All network requests bounded. Explicit final failure and source capabilities must be accurate. Do not silently substitute synthetic fixtures for live data; label synthetic test fixtures.
3. Test159399 exact requested range and supported stock/index/ETF comparison cases; dates after available trading session may legitimately have no bar, report coverage truthfully. Report exact row counts/start/end/source/columns/units and runtime. Exercise fetch -> persisted isolated dataset -> preview contract if feasible without touching production. Do not automatically retry or mutate user's failed dataset.
4. Run relevant worker tests and backend tests if changed. Preserve baseline features. Do not spend entire task fixing unrelated code. No deployment or production image replacement. Isolated image tag allowed if needed.
5. Handoff docs/recovery-01-results.md with exact commands/results, remaining blockers and list of changed files. End task; parent independently verifies.
Broader release gate is docs/skill-assisted-development.md. This task alone cannot declare whole product complete. Frontend redesign with reviewed domain skills and full browser/visual acceptance follows separately. Context budget approx256K; inspect actual compaction evidence if session grows, do not claim configured thresholds prove compaction occurred.
|