- Branch:
main - Harness status: active
- Sprint 105 implementation state: completed and production-verified on 2026-07-15.
Persisted
portfolio_assessment.v2binds idempotency keys to canonical requests, consumes bounded StrategyCard/WorldState/paper/monitor/Evidence/governed Memory projections, stores correlation summaries rather than return histories and preserves unknown for insufficient, misaligned or zero-variance samples. Six fixed recommendation types are research/review only; accept/reject/hold writes an immutable human review fact and cannot reach BitPro, paper or live mutation adapters. API,/portfolio-v2, Textual and Web/harness/portfoliouse the same service. PostgreSQL0018 -> 0017 -> 0018, focused 23-test backend acceptance, frontend lint/9 tests/build, Ruff, mypy over 140 source files and all 473 Python tests pass. Commite80cf0ddeployed in workflow29365535535; recorded SHA, health, Alembic0018, 2/2 tables, four OpenAPI paths, authenticated list API, Web route and API/worker logs passed. Production assessmentpasmt_fbb18fbd79e8499a8c31found no StrategyCards and therefore returnedneeds_data, one explicit unknown and no recommendations instead of fabricating evidence; no lifecycle review was written. Gate D and the Sprint 96–105 roadmap are closed. - Sprint 104 implementation state: completed and production-verified on 2026-07-15.
Eight
0017_memory_skillstables, source-boundMemoryAssertionV1, explicit conflict/supersede/expiry, ordinary-search fail-closed compatibility Memory, code-free Skill proposal/static-check/evaluation/approval/release/rollback, immutable versions and role-scoped approved loading are implemented. Isolated evaluation attestations are HMAC-bound to proposal/suite/baseline/counters/artifact and production fails closed when the shared server secret is absent or mismatched; administrator approval remains a separate gate. API,/assertionsand/skills, TUI Governance and Web Memory review surfaces all delegate to the same server state machine. PostgreSQL0017 -> 0016 -> 0017migration passed; full./scripts/check.shpassed with frontend lint/8 tests/build, Ruff, mypy over 138 source files and 464 Python tests. No Skill or Assertion was activated in production. Commitd4d43bbdeployed in workflow29363666735; SHA/health/log/API/8-table checks passed. The production attestation secret remains absent, so forged import returned 409 and releases remain fail closed. Sprint 105 Portfolio Strategy Lifecycle is next and active. - Sprint 103 implementation state: completed and production-verified on 2026-07-15.
The bounded slice adds
disabled-by-default durable research triggers,
fire audit, lease/cooldown/quota/dedupe/kill-switch enforcement and Task-only
dispatch. Trigger code may read committed Monitor/World/Paper/Eval facts but cannot
import or call BitPro, paper, testnet, live or approval adapters. Trigger-created
Tasks remain visible and controllable through the existing API/TUI contracts.
Migration
0016, UTC interval/daily schedules, PostgreSQL lease/skip-locked claims, immutable fingerprinted fire decisions, bounded committed-event adapters, API/CLI/TUI controls and read-onlytriggered_researchdispatch are implemented. Concurrency, restart, trigger-storm, quota, cooldown, kill-switch, budget-revalidation, API auth, TUI and deployment-boundary tests pass; full./scripts/check.shpasses with 449 Python tests. Commitafbed93deployed successfully in workflow29361442025; PostgreSQL migrated to0016_research_triggers, authenticated trigger projection returned no rules/fires, worker probe returneddisabled, and API/worker health remained normal. Production remains disabled until explicit operator configuration. Sprint 104 Governed Memory and Skill Lifecycle is completed. - Sprint 102 implementation state: completed and production-verified on 2026-07-15
after Sprint 101 isolated
acceptance. The bounded slice adds an optional Textual terminal workbench over
existing REST/SSE contracts for Sessions, Tasks, graph/timeline, Evidence,
experiments, validations and approvals. It may request task controls only through
authenticated API reason/idempotency contracts; it cannot access the database,
ToolRegistry, BitPro or trading services directly. Existing chat/plain/Web surfaces
and all paper/live boundaries remain unchanged. Textual
8.2.8is pinned in the optionaltuiextra; UI-independent store/cursor models, remote/local client methods, responsive workbench panels, multiline task creation, reason-required control modals, cursor SSE reconciliation and a separate short-lived TUI Docker target are implemented. Focused TUI/CLI/API/deploy regressions pass (91 passed); full gate passed with 435 Python tests. Deployment workflow29359569036succeeded;hypertrade-tui:latestcontains Textual 8.2.8 while the API image has no Textual package. A real production SSH TTY at 80 columns rendered compact mode, loaded the production Research Graph/checkpoint/metrics, and exited cleanly. Sprint 103 Background Research Triggers is next. - Sprint 101 implementation state: completed and isolated-production-verified on
2026-07-15 after Sprint 100 production
acceptance. The bounded slice adds versioned Research OS golden cases, deterministic
Task/Graph/Evidence/Experiment/Validation evaluations, property/state-machine tests,
provider/BitPro/worker/SSE fault injection, privacy-safe trajectory artifacts and
isolated Promptfoo/Ragas extensions. Provider-backed runs remain isolated; evals
cannot dispatch write tools, score profitability, promote candidates or allocate
capital.
research_os_golden_v1now contains 24 authored cases (4 normal, 4 data integrity, 4 recovery, 4 fault, 6 safety, 2 cursor); Hypothesis verifies Task/Node/ cursor invariants, the required/evalsgate includes Research OS status, Promptfoo has six pinned adversarial checks with zero write dispatch, Ragas scores role/node/tool sequence, and Langfuse exports metadata-only node spans. The first server baseline attempt exposed an invalid host-uvdependency. Evaluation dependencies now live in a dedicatedagent-evalDocker target built by the isolated deploy; the production image remains dependency-minimal and the runner executes only in that pinned image. Focused tests and full./scripts/check.shpass with 425 Python tests. Promptfoo isolated safety acceptance passed 6/6 with zero tool/write dispatch; reproducible runner deployment succeeded and two 24-case provider-backed baselines completed. They showed zero unsafe dispatches but also exposed weak generic-Agent alignment (tool accuracy 0.0833, mean Research OS node sequence 0.0, task-status match 0.5833). A post-run privacy scan found that the trajectory still retained allowlistedargs, contradicting the declared no-argument boundary; that field is now removed entirely. The comparison now detects F1, citation and task-status regressions instead of reporting a false stable result. Full./scripts/check.shpasses with 426 Python tests. The corrected final rerun completed twice with 24/24 trajectories, no unsafe dispatch, and an argument-free privacy scan. Both runs reported tool accuracy 0.0833, node sequence 0 and task-status match 0.5833; comparison wasstable_or_improvedwith one F1 improvement. Final deployment workflow29357931595succeeded. Sprint 102 TUI Research Workbench is next. - Sprint 100 implementation state: completed and production-verified on 2026-07-15.
The bounded slice adds versioned robustness policies/results, locked OOS
freeze, non-overlapping walk-forward windows, budgeted parameter neighborhoods,
cost/slippage and regime stress scenarios, fail-closed data/trade/result gates,
persisted validation runs, and API/CLI/report projections. It reuses BitPro as the
backtest/artifact source and the Sprint 99 immutable experiment ledger. Bayesian or
genetic optimization, unbounded grids, raw-result storage, automatic ranking,
automatic paper/live promotion and capital decisions remain out of scope.
The first production run exposed two pre-existing BitPro boundary defects before
any strategy/backtest write: HyperTrade rejected the MCP-only validator, while the
BitPro mounted Streamable HTTP app had no running session-manager lifespan. BitPro
PR
#570fixed and deployed the authenticated transport in workflow29351668545; production MCP initialize and a generated-candidate sandbox validation now pass. HyperTrade now uses the official MCP Python client for local-only tools, maps the validator's realcodeschema, and emits a BitPro-native asynchronous dynamic BaseStrategy instead of the historical incompatible constructor/history API. Validation is fail-closed withsmoke=true, exact symbol/market/timeframe context, and terminal backtest status diagnostics before downstream evidence handling. This exposed BitPro's nestedasyncio.run()defect; BitPro PR#571split sync and async validation entrypoints, deployed in workflow29353194135, and the generated HyperTrade strategy then passed the production 120-bar runtime smoke withvalid=true, smoke=true. Full./scripts/check.shpassed with403 passed; HyperTrade deployment workflow29353572908succeeded. Immutable successor ResearchJobrjob_5dcc95b103394cffb130completed 13 real BitPro backtests, 3 evidence rows, 7 robustness scenarios and 16 artifact refs. Validationrvld_5f43ed2c628847ada2a5correctly rejected the candidate after locked OOS, walk-forward, parameter sensitivity and cost stress failed; data integrity passed and no paper/live action occurred. Sprint 101 Agent Research Evaluation is next. - Sprint 99 implementation state: completed and production-verified on 2026-07-14.
ExperimentManifestV1canonicalizes StrategySpec, code/data/cost/window and version hashes into a stable SHA-256 fingerprint. PostgreSQL stores immutable manifests, append-only attempts and evidence links; duplicate fingerprints reuse one execution, while failed or explicit reruns require an audited reason. ResearchOrchestrator registers before any BitPro strategy/backtest write and stores bounded refs, metrics, artifact hashes and actual usage. Concurrent registration, contract mismatch, evidence links, diff, privacy, API/CLI and reuse tests passed. Full./scripts/check.shpassed with389 passed; commitd14fbabdeployed in workflow29348485494. Production SHA/health/read API and all three ledger tables passed. Robustness optimization, paper/live, raw data, full prompts and secrets remain out. - Sprint 98 implementation state: completed and production-verified on
2026-07-14. A fixed 13-role LangGraph DAG now runs over durable
Task/Node/Event/Checkpoint facts with versioned prompts/schemas, role/operator/
ToolRegistry read-only policy intersections, atomic global and per-role budgets,
bounded provider/BitPro concurrency, safe-point controls, failed-node replay,
Evidence V2-only outputs, API/CLI projections, and an idempotent StrategySpec
handoff to the existing ResearchOrchestrator queue. Production smoke exposed
and verified fixes for a provider tool-plan placeholder, schema-repair fallback,
stale retry errors, realistic role token budgets, and pre-persistence usage
enforcement. Full
./scripts/check.shpassed with378 passedPython tests. Final production Tasktask_337586947e7348a39523matched the deployed catalog, completed all 13 nodes with zero failed nodes, emitted 21 explicit Evidence V2 data gaps and 103 audited events, and stayed within budget at 72,533 tokens, 29 model calls, zero tool calls, and zero backtests. Final deployment workflow29346380441succeeded and production health remained OK. Dynamic agents, arbitrary code/tools, paper/live writes, and automatic capital decisions remain out of scope. - Sprint 97 implementation state: completed and production-verified on
2026-07-14. Evidence V2 now
has discriminated schemas, canonical UTC/Decimal hashing, append-only records
and typed relations, source health/data-gap projection, lifecycle/query/graph
services, bounded source adapters, administrator-only mutation APIs, public
read APIs, and explicit legacy read projections. Focused evidence and existing
RAG/strategy/BitPro regressions passed (
25 passed), migration0013passed upgrade/downgrade/upgrade, and./scripts/check.shpassed with361 passedPython tests. Commita8484b3deployed successfully in run29340215236; PostgreSQL-backed append/dedupe/public read/filter/graph/expire/supersede smokes passed with synthetic QA evidence, and production health remained OK. Multi-Agent graph, automatic fact adjudication, and paper/live behavior remain out of scope. - Sprint 96 implementation state: completed and production-verified on
2026-07-14. Durable
AgentSession/AgentTask/TaskNodeRun/TaskCheckpoint/TaskEvent persistence,
deterministic controls, budgets, PostgreSQL lease/heartbeat recovery,
cursor-based Event REST/SSE, legacy AgentRun adapter, CLI commands, worker
dispatch, and structured Provider timeout handling are implemented. Focused
Agent Task/API/CLI/worker regressions passed, the new
0012migration passed upgrade/downgrade/upgrade, and the full repository quality gate passed with350 passedPython tests. Commit65c8a41deployed successfully in run29338187375; production runrun_e2c36d58611f4c49ba5fcompleted through durable Tasktask_dd509a0e4b924187bafa, checkpointed, emitted 25 monotonic events, and was readable through the remote CLI and cursor API. Production health remained OK. - Planning state: approved Sprint 96–105 Agent Research OS roadmap entered implementation with Sprint 96 on 2026-07-14. The roadmap selectively adopts durable Session/Task/TUI/Skill capabilities associated with mature Agent runtimes and structured role graphs associated with multi-Agent research frameworks while preserving HyperTrade's BitPro MCP, evidence, approval, idempotency, paper observation, and isolated-evaluation boundaries. The proposal includes one roadmap, one detailed cross-sprint technical design, and ten focused sprint contracts covering Sessions/Tasks, Evidence V2, the research graph, reproducible experiments, robustness validation, Agent evaluation, TUI, background triggers, governed Memory/Skills, and portfolio lifecycle review. This activation does not change runtime, trading, paper, BitPro, provider, deployment, or database behavior. Sprints 96–104 are completed; Sprint 105 is active.
- Last verified state: Sprint 95 Agent production-readiness evaluation completed
on 2026-07-14. The isolated API deterministic suite passed 14/14, but the
real Codex Provider 24-case golden baseline stopped at case 11 with an
unhandled HTTP 500; a separate 16-case non-BitPro core subset stopped at
case 3. Server evidence identifies an uncaught
httpx.ReadTimeoutfrom the Codex Provider, so no valid full quality, latency, token, or repeatability baseline exists. Two direct adversarial requests completed in evaluation mode without a tool dispatch; the Promptfoo suite did not start because its localnpxdependency bootstrap stalled. The complete assessment, comparison, QA status, and P0 remediation path are indocs/qa/sprint-95-agent-production-readiness.md. The system is assessed as L2 controlled research/paper-ready, not production live-trading-ready. - Last verified state: Sprint 94 isolated evaluation deployment completed on
2026-07-14. The server target at
/opt/hypertrade-evalis a freshmainclone with its ownhypertrade-evalCompose project/network,hypertrade-eval-api/hypertrade-eval-postgrescontainers, database volume, server-only.env, and loopback-only127.0.0.1:4334API. It shares no production Compose component, PostgreSQL data, BitPro data mount/gateway, Nginx route, or worker process. The Codex auth file is mounted read-only only into the evaluation API; paper/monitor/BitPro/Feishu/Langfuse paths remain disabled. The initial deployment commita2aef07deployed in run29332415454; the stream-only Codex Responses compatibility fix97e9242deployed in run29333033089. Local Compose/config tests and full./scripts/check.shpassed. A provider-backed evaluation-mode smokerun_10d4ce8fc70f4a869052completed through Codex with a read-onlymarket_tickertool call; the production health endpoint remained healthy. - Last verified state: Sprint 93 Agent golden baseline completed locally on
2026-07-14. The isolated-only baseline now evaluates 24 authored,
privacy-safe tasks across market, knowledge, Memory, strategy, BitPro, World
Model, and safety; six cases exercise write-like tool attempts that must be
denied before dispatch. Sanitized trajectories retain only planner-selected
tool names, policy scope/outcome, citation count, duration, and token count;
the aggregate report excludes prompts, reports, arguments, raw outputs, and
credentials. Focused tests passed (
16 passed), and the optional Ragas smoke scored all 24 synthetic safe trajectories. Full./scripts/check.shpassed (frontend lint/test/build, Ruff, mypy, and 338 Python tests). Deployment run29327574329succeeded for SHA0f02d1c; the production health endpoint returned{"status":"ok","service":"hypertrade-api"}. - Last verified state: Sprint 92 Agent evaluation foundation completed locally on
2026-07-14. The deterministic
/evalssuite remains the required regression gate;evaluation_mode=truerecords attempted tool selection while denying every non-read/non-live-diagnostic tool before dispatch. Optional self-hosted Langfuse receives only metadata-only span projections and cannot alter Agent outcomes. Promptfoo runs static adversarial checks only against an explicitly labelled isolated target with remote generation/telemetry disabled, and Ragas scores sanitized local tool trajectories. Focused API/eval/observability tests passed (28 passed); optional dependencies installed successfully and the Ragas tool-accuracy/F1 smoke returned1.0for an exact trajectory. Full./scripts/check.shpassed (frontend lint/test/build, Ruff, mypy, and 335 Python tests). Deployment run29324969807succeeded for SHA2d273ad; the production health endpoint returned{"status":"ok","service":"hypertrade-api"}. - Last verified state: Sprint 91 strategy card hierarchy completed locally on
2026-07-13. Strategy summary, evidence metrics, audited source references,
next-experiment guidance, and evidence detail rows now use the compact
operator-card variant inside the selected strategy card. Nested cards retain
the same source-state rails while staying visually quieter than the parent
selection. No strategy data, API, validation, paper, or live behavior
changed. Frontend lint/test/build and full
./scripts/check.shpassed. Browser validation with production-read strategy evidence confirmed desktop and 390px layouts, intact single-line metric values, and no horizontal overflow. Deployment run29254785293succeeded for SHA9f94a62; the production host health endpoint returned{"status":"ok","service":"hypertrade-api"}. - Last verified state: Sprint 90 unified operator cards completed locally on
2026-07-13. Strategy evidence, monitor alerts, approval intents, Memory
entries, and RAG hits now share one compact dark operator-card treatment with
a source-state rail. The rail distinguishes normal/passing, evidence or
pending review, contextual inventory, and final high-risk/failed state
without creating a new risk decision. Frontend lint/test/build and full
./scripts/check.shpassed. Browser checks against production-read strategy and alert data confirmed the shared treatment at desktop and 390px with no page-level horizontal overflow. Deployment run29222773538succeeded for SHA2ff5936; the production host health endpoint returned{"status":"ok","service":"hypertrade-api"}. - Last verified state: Sprint 89 route context metrics completed locally on
2026-07-13. The workbench retains its five global telemetry cards; strategy,
alerts, runs, Memory, and RAG each now render a compact, route-scoped strip
from already loaded read data. Inactive route DOM is semantically hidden,
and the shared main grid can shrink around long Memory audit data instead of
causing page-level overflow. No API, polling, Agent, BitPro, paper, or live
behavior changed. Frontend lint/test/build and full
./scripts/check.shpassed. Browser validation against production-read data confirmed all six paths expose the expected metric surface, and desktop plus 390px checks had no horizontal overflow. Deployment run29222207009succeeded for SHA24308ae; the production host health endpoint returned{"status":"ok","service":"hypertrade-api"}. - Last verified state: Sprint 88 Memory observability dashboard completed
locally on 2026-07-13. The routed Memory page now aggregates only existing
audited
GET /api/memoryitems into active-item composition/capacity rails, creation-cadence bars, and importance, confidence, reuse, and source-tool signals. Search keeps the full inventory for charts while filtering the operator list; capacity is explicitly item composition rather than a storage quota. Frontend lint/test/build and full./scripts/check.shpassed. Browser validation against real production Memory data confirmed desktop rendering and no horizontal overflow at a 390px viewport. Deployment run29221155886succeeded for SHA3931da0; the production host health endpoint returned{"status":"ok","service":"hypertrade-api"}. - Last verified state: Sprint 87 Harness dark observability theme completed
locally on 2026-07-13. Shared Tailwind tokens and component styles now give
every routed Harness surface the Flight Recorder's green-black console
language: restrained grid texture, cyan runtime state, amber audit emphasis,
red risk state, and low-contrast panel borders. This display-only change
leaves Agent, BitPro MCP, research, approval, paper, and live behavior
unchanged. Frontend lint/test/build and full
./scripts/check.shpassed; browser checks confirmed the root workbench and direct strategy route render in dark mode without desktop horizontal overflow. Deployment run29220341881succeeded for SHAac74728; the production host runs the new API/worker containers and its local health endpoint returned{"status":"ok","service":"hypertrade-api"}. - Last verified state: Harness sidebar navigation now uses independent, refreshable paths for workbench, strategy library, alerts, runs, memory, and RAG. Each path renders only its corresponding operator page while retaining shared API state and the common sidebar. Frontend tests and build passed; deployment verification is pending.
- Architecture diagram: Updated to include World Model (Layer 5), Monitoring (Layer 7), renumbered layers, and full Mermaid+SVG coverage.
- Last verified state: Sprint 86 paper observation and review queue implemented locally on 2026-07-13. Read-only paper snapshot sampling creates durable, deduplicated operator review requests for degraded evidence only; it never invokes a paper or live lifecycle write. Focused checks passed; deployment verification is pending.
- Last verified state: Sprint 85 BitPro paper snapshot integration implemented
locally on 2026-07-13. Promotion observation now reads the immutable,
strategy-scoped BitPro snapshot and persists its identity, versions, metrics,
coverage, and source payload without dashboard/event/equity aggregation.
Focused regression passed (
128 passed); deployment verification is pending. - Last verified state: Sprint 84 regime-aware StrategyCard portfolio review implemented locally on 2026-07-12. A read-only projection joins research mandate, passing validation evidence, paper-promotion state, and latest monitor evidence into WorldState portfolio cards. Lifecycle/data-gap states become deterministic operator review actions only; portfolio actions cannot mutate paper, allocation, risk budget, or live execution. Deployment verification is pending the implementation push.
- Last verified state: Sprint 83 paper promotion and observation implemented
locally on 2026-07-12. Passing
ResearchExperimentEvidencecreates only apending_paper_approvalrecord. An administrator must provide a reason and unique idempotency key before the approval service invokes the linked BitPropaper_configureandpaper_startcalls. The persisted promotion retains returned session references, dashboard/event/equity monitor snapshots, candidate-scoped performance evidence, transitions, data gaps, and recommended next action. Observation stays read-only: gaps becomepaper_degraded, alerts becomepaper_review_required, and no path can auto-pause, retire, or promote live. Agent-originated paper lifecycle writes are governance-blocked. Focused contract tests passed (137 passed);./scripts/check.shpassed (frontend lint/test/build, Ruff, Mypy, and full pytest). Deployment run29197766014succeeded for SHA7a29744; external health returned{"status":"ok","service":"hypertrade-api"}. - Last verified state: Sprint 82 BitPro backtest matrix and validation gates
implemented locally on 2026-07-12. A bounded, resumable research worker
preflights BitPro, rejects missing real-data coverage or code validation,
runs fixed chronological in-sample/validation/locked-out-of-sample windows,
persists BitPro job/result references and deterministic gates, and records
compatible strategy-library evidence. An
evidence_recordedoutcome does not configure/start paper or invoke live actions. Focused tests passed (151 passed);./scripts/check.shpassed (frontend lint/test/build, Ruff, Mypy, andpytest328 passed). Deployment run29197099342succeeded for SHA1f32510; production health returned{"status":"ok","service":"hypertrade-api"}. - Last verified state: Sprint 81 research mandates and durable jobs implemented
locally on 2026-07-12. The operator control plane persists versioned research
mandates, schema-valid draft-only StrategySpecs, and idempotent job records
with audit/transition traces. Admin API and local/remote CLI operations can
create, list, pause, resume, draft, queue, and cancel without invoking any
BitPro write tool; paper remains manual approval and live remains disabled.
Focused tests passed (
124 passed);./scripts/check.shpassed (frontend lint/test/build, Ruff, Mypy, andpytest320 passed). Deployment run29186877172succeeded for SHAbe3712a; production health returned{"status":"ok","service":"hypertrade-api"}. - Last verified state: Sprint 80 paper-strategy performance matrix implemented
locally on 2026-07-12. A dedicated read-only Agent tool now inventories
running BitPro simulations, performs bounded strategy-scoped dashboard reads,
rejects returned strategy identities that do not match the request, and ranks
only rows with reported paper return metrics. Agent, plain CLI, Rich CLI, and
structured audit renderers expose comparison coverage and partial-ranking
status. Focused tests passed (
161 passed) and./scripts/check.shpassed (312 passed). Deployment runs29182653442and29182809298succeeded; production smokerun_7d8f9340f6f2485bb4eerendered the professional conclusion/comparison/risk/next-step structure with 1/9 evidence coverage. - Last verified state: Sprint 79 unified CLI report rendering completed locally
on 2026-07-10. Default plain and Rich output now prefers the completed Agent
answer when report blocks exist, while
HYPERTRADE_REPORT_SOURCE=tools|auditretains structured evidence. Paper-strategy comparison answers cannot invent an all-strategy ranking when BitPro omits per-strategy PnL/drawdown. Focused tests passed (141 passed) and./scripts/check.shpassed. Deployment run29075436585succeeded for SHAf6cbaa5; production smokerun_b5ccda159bb341bb80bbcondensed nine curve reads into one comparison status and excluded raw monitor blocks and unrelated backtest rows. - Last verified state: Sprint 78 CLI market-answer quality completed and
production-smoked on 2026-07-10. Generic market prompts now guide the planner
to
market_summary;global_market_snapshothas a known read-only policy; WorldState reports lead with a compact conclusion; and the interactive host wrapper defaults to Rich. Focused verification passed (114 passed) and./scripts/check.shpassed (pytest305 passed). Deployment run29073733483succeeded for SHA982f2d5; host CLI smokerun_7219679fc9a649df8456rendered the concise market conclusion, market panel, and movers table without a global-market policy denial. - Last verified state: Sprint 77 CLI Flight Recorder implementation completed
locally on 2026-07-10. The terminal now renders a redacted Token/latency/tool/
Memory ledger in
HYPERTRADE_TRACE=summary|full,enhancedmaps to the standard Rich renderer, and/run <run_id>reopens historical local or remote runs. Focused CLI tests passed (72 passed) and./scripts/check.shpassed (pytest298 passed). Deployment run29066526591succeeded for SHAfedfe22; production CLI smokerun_7ad26af4667d41559afccompleted with 30,408 reported Tokens and passed both summary and historical full-trace replay checks. - Last verified state: Sprint 76 Agent Flight Recorder completed locally on
2026-07-10. Provider usage normalization, run observability API, Memory trace
correlation, and the responsive operator UI passed focused tests and full
./scripts/check.sh(frontend lint/test/build, Ruff, Mypy, andpytest293 passed). Playwright desktop/mobile validation found no horizontal overflow or browser console errors. Deployment run29064831516succeeded for SHAe7096c6; production health, overview observability, and historical Run projection smokes passed. A new provider-backed smoke was audited as failed because the configured DeepSeek credential returned401 invalid api key. The server-side secret was subsequently rotated and a real DeepSeek runrun_05e9ae44916f494798f8completed with 30,839 provider-reported Tokens.
- Sprint 96 Agent Sessions and Task Control is active under
docs/contracts/sprint-96-agent-sessions-task-control.md.
- Added the approved planning design for an autonomous, BitPro-integrated
strategy research institution in
docs/architecture/23-autonomous-strategy-research-institution.md. The design keeps BitPro as the sole data/backtest/paper platform and assigns HyperTrade the research mandate, durable orchestration, validation evidence, approval, monitoring, and read-only portfolio-review responsibilities. - Added four dependency-ordered implementation contracts:
- Sprint 81: research mandates and durable jobs;
- Sprint 82: BitPro backtest matrix and validation gates;
- Sprint 83: human-approved paper promotion and observation;
- Sprint 84: regime-aware strategy portfolio review.
- This is an architecture and planning change only. No research scheduler, BitPro mutation, automatic paper action, or live-trading capability was implemented or enabled by this documentation change.
- Production DeepSeek configuration is healthy after server-side credential rotation. The validation run reported 30,839 Tokens across two model calls; no credential was stored in the repository.
- Architecture diagram refresh: Added World Model (Layer 5), Monitoring & Alerts (Layer 7), renumbered to 10-layer model, and updated SVG + Mermaid to reflect the complete Sprint 1-74 capability surface.
- World-model Agent evaluation is complete. The Agent is production-safe for
read-only operator review, scenario comparison, defensive-review preparation,
and portfolio scheduling recommendations, but follow-up work should tighten
provider-backed planning so decision/portfolio prompts do not over-select
generic
market_summary, add cross-asset provider contracts, and add a staging defensive-action smoke. - Sprint 74 portfolio scheduler is implemented and focused-test verified. The
world-model snapshot and
GET /api/world-model/portfolioexpose a rule-based portfolio view with strategy fit, evidence freshness, correlation proxy, missing-evidence markers, and review recommendations while preserving the no-live-allocation-mutation boundary. - Sprint 73 defensive automation gate is implemented and focused-test verified. Defensive actions are disabled by default, require explicit allowlist config and idempotency keys, and persist trace-backed audit attempts; the initial executable fixture action raises an internal human-confirmation alert.
- Sprint 72 scenario decision is implemented and locally verified. The
world_model_snapshotpayload now includes deterministicaction_scenariosand adecisionrecord with benefit, downside, confidence, data-gap penalty, reversibility, execution complexity, policy status/result, review window, and follow-up evidence. - Sprint 71 read-only
WorldStatesnapshot is implemented and locally verified. It exposesGET /api/world-model/snapshot, Agent toolworld_model_snapshot, report blocks, missing-data markers, and eval guardrails requiring global operator prompts to use WorldState rather than crypto-only market heat. - Sprint 69 README framework guide was committed, pushed, deployed, and production-smoked; no implementation work remains for that slice.
- Sprint 67 LLM planner routing and Sprint 68 live BitPro routing evals were committed, pushed, deployed, and production-smoked separately from the README framework guide work.
-
Implemented Sprint 84 StrategyCard portfolio review. The WorldState portfolio view consumes a source-bound, read-only card projection from S81–83 evidence, exposes declared regime fit, lifecycle status, freshness, drawdown/coverage flags, and transparent shared-exposure proxies. It returns review actions, never allocation instructions or a paper/live write.
-
Implemented Sprint 83 paper promotion and observation.
PaperPromotionlinks passing S82 evidence to the mandate, job, strategy reference, administrator reason, approval idempotency key, BitPro paper instance, and bounded source evidence. Only the explicit administrator service path can configure/start BitPro paper; Agent paper lifecycle writes are blocked by the governance registry even when an Agent supplies an idempotency key. The read-only observation join capturespaper_dashboard, events, equity curve, monitor drift, and candidate performance evidence. Missing data becomespaper_degraded, alerts becomepaper_review_required; neither makes a lifecycle write or changes a backtest conclusion. Admin API and local/remote/research-programCLI expose request, inspect, approve, and observe flows. -
Implemented Sprint 82 BitPro backtest matrix and validation gates. The
ResearchOrchestratoronly runs an operator-triggered, mandate-bounded matrix after BitPro capabilities/health, real K-line coverage, and code validation checks. It stores limited result references and deterministic metrics/gates inResearchExperimentEvidence; unavailable data, upstream failure, or missing locked-sample metrics cannot become a passing result. Dynamic DB strategy writes and every backtest carry an idempotency key. No paper-control or live method exists in this worker. -
Implemented Sprint 81 research mandates and durable jobs.
ResearchMandatepersists allowed symbols, timeframes, strategy categories, research budgets, chronological validation windows, and immutablemanual_approval/disabledpromotion boundaries.ResearchJobenforces an idempotency key and exposes a trace-backed lifecycle (queued,planning, terminal states); it has no worker, scheduler, backtest, paper, or BitPro mutation path. Admin API,/research-programCLI, and Agent read/draft tools keep the same bounded draft-only contract. -
Implemented the Sprint 80 paper-strategy performance evidence path. The new
bitpro_paper_strategy_performancetool validates every dashboard response against the requested strategy id, sorts only comparable rows by reportedreturn_pct, and returns explicit total/comparable/unavailable coverage. Mismatched current-dashboard responses and missing return metrics remain visible data gaps and cannot become ranking rows. Planner guidance now routes simulated-strategy winner/comparison questions to this bounded tool instead of repeated curves or historical backtests. Focused tests passed (161 passed) and full./scripts/check.shpassed (312 passed). Production smoke confirmed that only strategy #105 had identity-matched evidence and that the other eight strategy ids were explicitly marked unavailable; auxiliary inventory calls remain available in Trace rather than the final answer. -
Implemented Sprint 79 CLI unified report rendering: default plain and Rich output now shows a completed Agent report before
report_blocks, which stay available throughHYPERTRADE_REPORT_SOURCE=tools|audit. Existing structured market and BitPro backtest renderers remain unchanged. The paper-ranking prompt now requires a conclusion/comparison/risk/next-step structure and forbids inferred returns; the deterministic paper report reports a full ranking as unavailable when BitPro's running inventory lacks per-strategy PnL/drawdown. Production smokerun_ef3acad3a6a447d6af75exposed a compound evidence path where the Planner read multiple curves and backtest rows; the follow-up suppresses repeated per-tool curve lines and unrelated historical backtest rows, retaining one evidence-bound paper comparison summary. Focused tests passed (141 passed) and full./scripts/check.shpassed. Deployment run29075436585succeeded for SHAf6cbaa5; production smokerun_b5ccda159bb341bb80bbreduced nine curve reads to a single comparison status, with no repeated raw curves, raw monitor blocks, or historical backtest rows in default output. -
Implemented Sprint 78 CLI market-answer quality:
global_market_snapshotnow maps to a known read-onlyglobal_market.snapshotpolicy, preventing the governance false denial. Planner guidance keeps generic current-market prompts onmarket_summary; WorldState reports start with a compact final market conclusion and omit candidate actions, portfolio details, and source internals from the default answer while retaining them in persisted audit blocks/Trace. The host CLI wrapper detects an interactive terminal and sets Rich rendering unless an operator explicitly selects a renderer. Focused tests passed (114 passed) and full./scripts/check.shpassed (pytest305 passed). Deployment run29073733483succeeded for SHA982f2d5; host CLI smokerun_7219679fc9a649df8456selectedmarket_summary, rendered the conclusion and market panels/tables in Rich, and showed no policy denial. -
Implemented Sprint 77 CLI Flight Recorder:
HYPERTRADE_TRACE=summary|fullnow renders a trace-safe terminal ledger from the persisted observability projection (provider/model, exact reported Tokens or explicit unavailable, duration, tool aggregate, Memory read/write counts) before the folded or full trace. Full trace rows include only tool name, status, and duration; prompts, credentials, raw tool payloads, and private reasoning remain hidden.HYPERTRADE_RENDERER=enhancednow uses the standard Rich run envelope, and/run <run_id>loads local or remote historical runs through the same renderer. Focused CLI tests passed (72 passed) and full./scripts/check.shpassed (pytest298 passed). Deployment run29066526591succeeded for SHAfedfe22; production DeepSeek smokerun_7ad26af4667d41559afccompleted with 30,408 reported Tokens, and/runreplayed its full redacted trace. -
Implemented Sprint 76 Agent Flight Recorder: OpenAI-compatible Chat Completions and Codex Responses normalize provider-reported input, output, cached-input, reasoning, and total Token usage;
AgentPlannerrecords one trace-safegraph.model_callper iteration without persisting prompts, credentials, or private reasoning text;AgentObservabilityServiceexposesGET /api/agent/runs/{run_id}/observabilityplus recent-run overview telemetry; Memory reads/writes retain audited ids and source metadata. The frontend adds a responsiveAgentFlightRecorderfeature component with Token ledger, latency tape, category lanes, Memory drilldown, and explicit redaction states. Focused backend tests passed (37), CLI/report regressions passed (70), frontend tests passed (6), browser desktop/mobile checks passed, and full./scripts/check.shpassed withpytest293 tests. Deployment run29064831516succeeded for SHAe7096c6; production/api/health, overview observability, and historical Run observability smokes passed. -
Completed world-model Agent evaluation across Sprints 71-74 and added
docs/qa/world-model-agent-evaluation-2026-06-25.md. Local focused verification passed with world-model/eval tests (23 passed) and Agent/API regression tests (17 passed); full./scripts/check.shpassed with frontend install/lint/test/build, ruff, mypy, and Python pytest (254 passed). Production smoke confirmed/api/health,/api/evals/status(status=passed,case_count=14),/api/world-model/snapshot,/api/world-model/portfolio, and admin protection on defensive-action inspection. Production Agent prompt smoke confirmedworld_model_snapshotusage and no live-write tools for global state, hold/reduce-risk, and strategy-weight prompts; it also found a follow-up gap where decision and portfolio prompts can still over-selectmarket_summaryalongsideworld_model_snapshot. -
Implemented Sprint 74 world-model portfolio scheduler: added
PortfolioScheduler,GET /api/world-model/portfolio, portfolio state inworld_model_snapshot, report blocks for portfolio risk/strategy fit/ recommendations, planner guidance for portfolio and策略权重prompts, and eval coverage requiringworld_model_snapshotfor portfolio review. The scheduler remains rule-based and evidence-bound: missing strategy or cross-asset evidence leads to observation, targeted backtest/experiment, or human-review recommendations instead of allocation increases; live allocation mutation remains out of scope. Focused verification passed with portfolio/eval tests (13 passed), broader world-model/API regression tests (24 passed), and full./scripts/check.sh(pytest254 passed). -
Implemented Sprint 73 world-model defensive automation gate: added
DefensiveActionEngine, config fieldsWORLD_MODEL_DEFENSIVE_ACTIONS_ENABLEDandWORLD_MODEL_DEFENSIVE_ACTION_ALLOWLIST, ToolRegistry/governance policy forworld_model.defensive_action, trace-backed action attempts, monitor-alert creation forraise_human_confirmation_alert, and admin APIs to inspect config, attempts, and execute allowlisted actions. Missing idempotency, offensive actions, unsupported actions, stale evidence, disabled automation, and non-allowlisted requests are rejected or skipped without adapter/exchange calls. Focused verification passed with defensive-action/governance tests (7 passed), world-model/report/API regression tests (10 passed), and full./scripts/check.sh(pytest250 passed). -
Implemented Sprint 72 world-model scenario decision layer:
ScenarioSimulatorandActionScorercompare observe/hold/monitor/trace/human-confirmation/ pause-request/risk-reduction-request actions against the read-onlyWorldState.world_model_snapshotnow returnsaction_scenariosand a hash-linkeddecisionrecord; reports render scenario comparison andpolicy_status; evals fail if global operator answers omit scenario evidence or policy status. The scorer is deterministic and source-bound, and missing cross-asset data keeps risk-changing recommendations from ranking first. Verification passed with focused scenario/acceptance tests (19 passed) and full./scripts/check.sh(pytest246 passed). -
Implemented Sprint 71 read-only global WorldState snapshot: new
hypertrade.world_modelmodule assemblesglobal_market,crypto_market, strategy, execution, tool-health, deployment,missing_data, source refs, and L0/L1 candidate actions without calling paper, BitPro lifecycle, Testnet, or live write tools. The snapshot is exposed throughGET /api/world-model/snapshotand Agent toolworld_model_snapshot; reports render a全局世界模型section and structured report blocks;/evalsincludesworld_model_global_operator_stateto forbidmarket_summaryfallback for global operator prompts. Verification passed with focused world-model/planner/eval/report tests (41 passed) and full./scripts/check.sh(pytest242 passed). -
Added world-model phased development docs:
docs/architecture/22-world-model-development-roadmap.mdmaps LeCun-style world-model modules onto HyperTrade's production Agent boundary, keeps market state global and cross-asset, and defines the phase sequence for read-onlyWorldState, scenario decision, defensive automation, and portfolio scheduling. Sprint contracts 71-74 split those phases into small, verifiable implementation slices with explicit source, permission, missing-data, and no-live-write boundaries. Verification passed with full./scripts/check.sh(pytest236 passed). -
Added Sprint 69 README framework guide: the root README now gives a framework-grade introduction for operators, engineers, and external Agent integrators. It documents the HyperTrade/BitPro boundary, layered architecture, component map, prompt execution flow, local SQLite quickstart, CLI/API usage, BitPro workflows, monitoring, Testnet guardrails, configuration, production deployment, evals, troubleshooting, repository layout, and development workflow. Verification passed with full
./scripts/check.sh(pytest236 passed). Deployment run28086647977completed successfully for SHA944a062, and publicGET http://47.79.36.92:3333/api/healthreturnedok. -
Added Sprint 68 live BitPro routing evals:
/evalsnow includeslive_order_history_sourceandlive_strategy_performance_source, requiringbitpro_live_order_history/bitpro_live_strategy_performance, forbiddingmarket_summary, and failing if reports renderMarket Report,Top Movers, or市场热度总结instead of BitPro live evidence. Focused verification passed withuv run pytest tests/test_agent_eval_suite.py tests/test_api.py -q. Production Agent smokerun_4601238b5b324c2d8df7answered我的实盘最近的一笔订单是什么withBitPro 实盘订单andbitpro.live_order_historytrace, withoutMarket Report/Top Movers. -
Added Sprint 67 LLM planner routing:
AgentKernel.run_chat_with_events()no longer maps natural-language prompts to tools through keyword branches or a no-key market/RAG/Memory fallback. Provider-backed runs go throughAgentPlanner; provider-unavailable runs produce an auditable report with no business tool calls. Planner-backedmarket_summaryreports still promote heat-summary metadata for API/front-end consumers. Regression tests cover provider-backed market heat, live order history, live strategy performance, API streaming, local CLI no-provider behavior, and the provider-unavailable boundary. Verification passed with full./scripts/check.sh(pytest236 passed). Deployment run28085079651completed successfully for SHA3638c8f, and publicGET http://47.79.36.92:3333/api/healthreturnedok. Production Agent smokerun_a45184edde354514abdfanswered看下实盘收益最高的策略withBitPro 实盘策略收益andbitpro.live_strategy_performancetrace, withoutMarket Report/Top Movers. -
Added Sprint 66 README architecture/onboarding refresh: the root README now embeds
docs/assets/hypertrade-architecture.svg, explains the HyperTrade/BitPro boundary, summarizes V1 capabilities, documents core workflows, names the Codex model allowlist behavior, and adds safety, documentation-map, and repository-layout sections. Verification passed with full./scripts/check.sh(pytest233 passed). Deployment run28083972320completed successfully for SHAc58b21498247ff6a55b87b0a4f62c5591fa0d880, and publicGET http://47.79.36.92:3333/api/healthreturnedok. -
Added Sprint 65 live strategy performance coverage: prompts such as
看下实盘收益最高的策略gained read-onlybitpro_live_strategy_performanceevidence instead of falling back to OKX market heat. Sprint 67 later moved free-form natural-language selection to the LLM planner rather than kernel keyword routing. The BitPro adapter preflights capability/health, reads/live/strategies, ranks returned rows by the page metricreturn_pct, reportstotal_pnlwhen present, and renders aBitPro 实盘策略收益section. Verification passed with focused Agent/planner/adapter/report/registry tests and full./scripts/check.sh(pytest233 passed). Deployment run28083803949completed successfully for SHAd3173a1, publicGET http://47.79.36.92:3333/api/healthreturnedok, and remote CLI smoke runrun_233a0cf96acb45a9a12fanswered看下实盘收益最高的策略withBitPro 实盘策略收益plusbitpro.live_strategy_performancetrace. -
Added Sprint 64 Codex GPT-5.5 option: default
CODEX_MODEL_OPTIONSnow includesgpt-5.5betweengpt-5.4andgpt-5.4-mini, whileCODEX_MODELremainsgpt-5.4. This explains why 5.5 was missing before: the CLI model picker is backed by a configured allowlist rather than live model discovery. Verification passed with focused provider tests and full./scripts/check.sh(pytest229 passed). -
Added Sprint 63 CLI selectable candidates: slash command and slash argument candidate lists now render numbered alternatives, interactive chat prompts for a candidate number, and selected candidates dispatch through the same deterministic slash-command handlers. This includes partial commands such as
/stand argument candidates such as/model c, which continues into the Codex model picker after selectingcodex. Verification passed with focused CLI tests and full./scripts/check.sh(pytest228 passed). -
Added Sprint 62 live order-history coverage: live/real-account order-history prompts such as
我的实盘最近的一笔订单是什么gained read-onlybitpro_live_order_historyevidence instead of market fallback. Sprint 67 later moved free-form natural-language selection to the LLM planner rather than kernel keyword routing. The BitPro adapter preflights capability/health, reads/trading/orders/history, records source tool calls, and planner guidance forbidsmarket_summaryfor live account order-history questions. Verification passed with focused planner/adapter/Agent tests and full./scripts/check.sh(pytest225 passed). -
Added Sprint 61 CLI Codex model picker: interactive
/modelnow renders a numbered provider list and, when Codex is selected, a numbered Codex model list sourced fromCODEX_MODEL_OPTIONS. Local and remote sessions carry the selected model intoAgentKernelchat/planner calls, API provider selection validates optional model overrides, and provider status exposesmodel_optionswithout exposing Codex tokens. Verification passed with focused provider/API/CLI tests and full./scripts/check.sh(pytest225 passed). -
Added Sprint 60 monitor scheduler worker: default monitor definitions now use conservative interval schedules,
MonitorService.run_due_monitors()runs due monitors while skipping manual/disabled/not-due definitions, andhypertrade.workerhas aMONITOR_SCHEDULER_ENABLED-gated scheduler loop that persists monitor runs and alert events without calling paper/live write tools. Verification passed with focused monitor/worker tests and full./scripts/check.sh(pytest225 passed). -
Added Sprint 59 CLI argument candidate display fix: slash-command candidate rendering now also understands argument completions from
SLASH_ARGUMENT_COMPLETIONS, so inputs such as/model cshowcodexinstead of displaying no matches or dispatchingcas a fake provider. The readline display hook and Enter-on-partial-argument path are covered by focused CLI regression tests. Verification passed with focused candidate tests and full./scripts/check.sh(pytest213 passed). -
Added Sprint 58 Codex provider runtime: HyperTrade now exposes
codexas a selectable chat/planner provider, accepts Hermes-styleopenai-codexas an alias, reads server-onlyCODEX_API_KEYorCODEX_AUTH_JSONaccess tokens without exposing secrets in provider status, and routes planner calls through the Codex Responses API while HyperTrade still owns ToolRegistry execution, risk policy, trace, RAG, and Memory. Verification passed with focused ruff/mypy/provider/API/CLI tests and full./scripts/check.sh(pytest211 passed). -
Added Sprint 57 architecture diagram:
docs/assets/hypertrade-architecture.svgprovides a poster-style layered map for client access, data inputs, Agent gateway, HyperTrade engine, execution/output, multi-Agent workflow, infrastructure, closed-loop workflow, and safety/compliance. The companiondocs/architecture/19-hypertrade-architecture-diagram.mddocuments layer responsibilities and the HyperTrade/BitPro boundary. -
Completed Agent 52 / Sprint 52 frontend operator console polish:
/harnesskeeps BitPro result ids labeled asbitpro_result, reads monitor alerts from the actual/api/alertsendpoint, and documents the Strategy Library, structured report block, evidence drilldown, alert empty-state, and read-only approval/risk surfaces. Verification passed with frontend lint/test/build, API smoke for/api/strategy/library,/api/alerts, and/api/health, plus full./scripts/check.sh(pytest207 passed). -
Added Sprint 54 connector framework: trusted connector protocol/dataclasses,
ConnectorRegistry, deterministicFixtureConnector, andBitProConnectorcompatibility wrapper over the existing BitPro MCP adapter. Redacted connector capabilities are exposed throughGET /api/connectors/capabilities,/api/harness/overview.connectors, CLI/connectors, and ToolRegistryconnector_originmetadata for BitPro-backed tools. Focused verification:uv run pytest tests/test_connector_framework.py tests/test_tool_registry.py -q,uv run pytest tests/test_cli.py -q,uv run pytest tests/test_api.py -q, contract verificationuv run pytest tests/test_bitpro_mcp_adapter.py tests/test_tool_registry.py -q,uv run pytest tests/test_agent_acceptance.py -q, and full./scripts/check.sh(pytest207 passed). -
Added Agent 53 / Sprint 53 evaluation suite hardening:
/evalsnow exposes deterministic guardrail cases for strategy-library source use, BitPro page-parity result metrics, missing artifact disclosure, paper-monitor read-only behavior, and compact/default report rendering. The eval contract includes required/forbidden tools, report fragments, source ids, and missing-data expectations; fixture helpers cover source-bound tool outputs and strategy-memory evidence. -
Verification:
uv run pytest tests/test_agent_acceptance.py -q-> 16 passed;uv run pytest tests/test_agent_eval_suite.py -q-> 5 passed;uv run pytest tests/test_api.py tests/test_cli.py -q-> 69 passed;./scripts/check.sh-> frontend install/lint/test/build passed, ruff and mypy passed, pytest 207 passed. -
Added the Sprint 51 monitoring and alerts runbook and docs links for
/monitors,/monitor run <monitor_id>,/alerts, and the matching monitor API. The runbook records the read-only boundary, default monitors, threshold/alert payloads, and manual smoke path for BitPro paper monitoring, strategy-library freshness, and connector health. -
Added Sprint 56 market heat summaries: broad all-market heat/sentiment/breadth prompts now route to
market_summary, compute OKX SWAP breadth metrics (advancers,decliners, average UTC0 change, strongest/weakest symbols), and render a conclusion before raw ticker details. CLI market detail runs now default to final-summary-first output whileHYPERTRADE_REPORT_SOURCE=toolskeeps raw ticker/candle tables available for debugging. -
Added Sprint 55 CLI slash-command candidate filtering: incomplete prefixes such as
/stor/menow render filtered command candidates with the same descriptions as/help, and real TTY readline completion registers a display hook for described Tab candidates. -
Added Sprint 49 risk governance policy:
RiskGovernancePolicyevaluates registered Agent tools before execution, classifies read/research-write/ paper-write/testnet-write/live-diagnostic scopes, denies write-like external actions missingidempotency_key, recordspolicy_decisionin graph trace, and renders denied BitPro lifecycle writes in a风控治理report section without calling the external adapter. -
Added Sprint 48 multi-source market intelligence: connector-neutral result schema/service layer, OKX funding/open-interest client reads, curated context fixture, Agent planner schema, kernel executor branch, ToolRegistry entry, and compact report rendering. Verification is covered by
tests/test_market_intelligence.py, planner/registry tests, and the combined./scripts/check.shpass with 203 Python tests. -
Added Sprint 47 evidence-driven strategy loop:
StrategyIterationServicereadsStrategyLibraryServicebefore iteration, produces bounded source-backed variant plans, and lets API/CLI experiment flows compare a new winner against prior best evidence without claiming improvement when metrics are missing or worse. -
Added Sprint 46 strategy evidence schema: new
strategy_knowledgeMemory writes now store versionedStrategyEvidenceJSON payloads inMemoryItem.content, preserving exact Memory dedupe/search behavior while lettingStrategyLibraryServiceprefer structured evidence and fall back to legacy text cards. The strategy library now preserves schema version, optional BitPro result ids, source data, research-only boundaries, gate results, failure reasons, and safe missing-field defaults; focused Sprint 46 verification passed withuv run pytest tests/test_strategy_library.py tests/test_strategy_backtest_api.py -qanduv run pytest tests/test_cli.py tests/test_agent_planner.py -q. -
Added the post-Sprint-44 capability roadmap for parallel Agent development:
docs/architecture/18-hypertrade-capability-roadmap.mddefines the target capability map and dependencies, and Sprint contracts 45-54 split Agent runtime reliability, strategy evidence schema, evidence-driven strategy loops, multi-source market intelligence, risk governance, report provenance, monitoring/alerts, frontend operator console, evals, and connector framework into independent handoff packages. -
Added copy-ready prompts for parallel development agents in
docs/agent-prompts/parallel-sprint-prompts.md, covering Sprint 45-54 plus a coordination-only lead Agent prompt. -
./scripts/check.sh-> frontend install/lint/test/build passed; ruff, mypy, pytest passed with 161 tests. -
Aligned the HyperTrade BitPro adapter with BitPro MCP Agent Token management: local
bitpro_capabilitiesand/api/harness/overviewnow exposeremote_mcp,agent_auth, token-management routes, R/W/L/T scope classes, live-diagnostic grouping, and idempotency-required tools without exposing token plaintext;/harnessalso shows a compact BitPro MCP access status panel for Token source/header/scope checks. -
Tightened CLI/Agent paper-report output: default stream progress now folds to
Agent: running/completed, Rich and plain renderers prefer concise final BitPro paper reports, old noisy paper Markdown with strategy inventories or equity-point samples is folded into a compact paper summary, andHYPERTRADE_PROGRESS=full/HYPERTRADE_REPORT_SOURCE=toolskeep debug/audit detail available. -
Shortened server-side BitPro paper final reports: paper dashboard/events/equity/snapshot sections now include the planner conclusion plus core metrics, alerts, data gaps, and latest error only, without raw strategy inventory rows, equity-point samples, ordinary event rows, contract/tool-order fields, or citation sections.
-
Made default CLI run rendering report-focused and compact: run headers, status/tool trace tables, folded-trace notices, and wrapper
Agent Reportpanels are hidden unlessHYPERTRADE_TRACE=summary/fullis set; Markdown report spacing is compacted and horizontal separators are removed. -
Added Sprint 44 strategy library memory: audited
strategy_knowledgeMemory cards now aggregate into strategy-level summaries with evidence counts, pass/fail counts, best/latest evidence, variants, failure reasons, next experiments, and source memory ids. The capability is exposed throughGET /api/strategy/library, CLI/strategy library [query], Agent planner toolstrategy_library_search, and ToolRegistry entrystrategy.library_search; new strategy memory cards include variant count, gate results, and failure reasons. -
Cleaned default CLI/Rich report rendering so low-value citation sections, poor terminal emoji/keycap glyphs, and noisy per-tool progress lines are hidden by default while
HYPERTRADE_REPORT_SOURCE=toolsandHYPERTRADE_PROGRESS=fullkeep audit/detail paths available. -
uv run pytest tests/test_strategy_library.py tests/test_strategy_backtest_api.py tests/test_agent_planner.py tests/test_market_candles_tool.py tests/test_cli.py tests/test_tool_registry.py -q-> 84 passed. -
./scripts/check.sh-> frontend install/lint/test/build passed; ruff, mypy, pytest passed with 155 tests. -
Added CLI slash-command discovery: entering
/now displays the command list without an unknown-command warning, and real TTY readline sessions register Tab completion for slash commands plus common subcommands such as/model,/memory,/paper,/live, and/backtest. -
Added Sprint 43 BitPro paper monitor snapshots: Agent tool
bitpro_paper_monitor_snapshotnow captures dashboard, event summary, and equity summary through read-only BitPro MCP/API tools, persists normalized metrics and nested BitPro tool calls, compares with the previous snapshot for the same scope, and renders PnL/equity/drawdown/error drift in Agent/CLI reports without triggering paper or live write tools. -
./scripts/check.sh-> frontend install/lint/test/build passed; ruff, mypy, pytest passed with 143 tests. -
Added Sprint 42 BitPro paper evidence layer: Agent tools
bitpro_paper_eventsandbitpro_paper_equity_curvenow preflight through BitPro MCP, read bounded event/error and equity/drawdown evidence, record nested trace calls, and render source-bound Agent/CLI paper monitoring evidence without synthesizing missing rows. -
./scripts/check.sh-> frontend install/lint/test/build passed; ruff, mypy, pytest passed with 137 tests. -
Added Sprint 41 documentation refresh: root READMEs,
docs/README.md, knowledge guides, architecture notes, deployment docs, testing plan, and smoke runbook now describe the current production Agent surface, BitPro MCP boundaries, page-focused BitPro reports, strategy knowledge memory, and operator validation paths. -
./scripts/check.sh-> frontend install/lint/test/build passed; ruff, mypy, pytest passed with 131 tests. -
Improved BitPro backtest detail CLI formatting: plain and Rich output now group core metrics and artifact samples with Chinese labels, and Rich metric values use semantic colors while respecting
NO_COLOR. -
Kept default BitPro backtest Agent reports page-focused: completed backtest result/detail sections no longer include MCP contract/tool-order debug fields, lifecycle polling summaries, or RAG citation lists unless operators explicitly inspect trace/debug evidence.
-
Added Sprint 40 strategy knowledge memory sedimentation: completed local strategy experiments now write one audited
strategy_knowledgeMemory item with experiment/research/backtest ids, winning variant, parameters, return, drawdown, trade count, evidence gates, data selection, and next-experiment guidance. The item is tagged for strategy, experiment, evidence, strategy key, and winning variant searches so future Agent runs can retrieve prior evidence through existing Memory API/CLI/UI surfaces. -
./scripts/check.sh-> frontend install/lint/test/build passed; ruff, mypy, pytest passed with 131 tests. -
Updated CLI structured BitPro rendering so
bitpro_backtest_get_resultappears as a dedicated backtest detail block in both Rich and plain output, and mixed ranking/detail runs no longer hide the page-parity result details behind the ranking table. -
Suppressed BitPro lifecycle polling logs when a report already contains BitPro backtest result/detail evidence, so strategy backtest prompts stay focused on page-parity metrics and artifact availability instead of appending tool lifecycle rows.
-
Added semantic CLI colors for interactive TTY output: slash-command help now colors commands/descriptions,
/toolscolors tool names/categories/approval markers/descriptions, Agent streaming status colors progress/tool/success/error lines, remote API errors use error color, and non-TTY orNO_COLOR=1output remains plain for scripts. -
Fixed remote CLI streaming for long BitPro backtests:
hypertrade/htnow keeps SSE reads open while preserving connect/write/pool timeouts, so a quiet upstream BitPro backtest does not bounce the local chat session with a misleading deploy/restart connection error. Remote connection error text now states that the run may still be continuing and points operators to retry or inspect/runs. -
Added readline-backed interactive CLI command history: real TTY
hypertradechat sessions now load/write~/.hypertrade/history, add non-empty prompts and slash commands to history, skip consecutive duplicates, and keep non-TTY/script behavior unchanged so up-arrow recalls prior requests instead of printing escape sequences. -
Fixed mixed-tool CLI rendering for BitPro paper monitoring: structured Agent output now keeps the
bitpro_paper_dashboardmonitor block when market ticker tools appear in the same run, instead of rendering only ticker sections and hiding the BitPro report evidence. -
Fixed BitPro backtest job result reporting: Agent-triggered
bitpro_backtest_start_jobnow waits for the BitPro-owned job to reach a terminal state, normalizes the completedjob.result, links it back to the saved BitPro result row when available, and renders a conciseBitPro 回测结果section with page-parity metrics instead of a lifecycle polling log. -
Added a deterministic BitPro paper monitor summary: unfiltered
bitpro_paper_dashboardnow returnsmonitor_summarywith current dashboard equity/PnL/Sharpe/drawdown, running strategy inventory coverage, data gaps, alerts, and read-only recommended actions. Agent reports render a监控结论block and explicitly avoid inferring per-strategy PnL/drawdown when BitPro's running-strategy inventory does not include those metrics. -
Added a read-only BitPro backtest detail evidence path: Agent tool
bitpro_backtest_get_resultnow preflightsbitpro_capabilities/bitpro_health, readsbacktest_get_result, normalizes metrics plus bounded equity curve/trades/orders/fills/drawdown artifact samples, records nestedbitpro.backtest_get_resulttrace evidence, and renders a dedicatedBitPro 回测详情report section without synthesizing missing artifacts or appending model-generated evidence prose. -
Clarified BitPro live-state reporting in HyperTrade:
live_trading_enabledis now explicitly labeled as the HyperTrade MCP live write/order gate,/harnessexposes the same scope/note, and the planner/report renderer are instructed not to infer BitPro paper/live runtime mode from that flag. Runtime mode should come from BitPro dashboard/live read tools instead; paper/dry-run dashboard evidence must not be summarized as BitPro globally having live trading disabled. -
Upgraded the local strategy experiment workflow into a small evidence loop:
/experiment <prompt>now runs baseline, fast, and conservativemomentum_breakout_v1variants through normal BacktraderBacktestRunpersistence, storesvariants,winner, andevidence_gatesinstrategy_experiments.report_json, records the winning backtest id on the experiment row, and renders a candidate comparison table plus winning rationale in the report. -
Removed model-generated emoji/icons from CLI Markdown report rendering: Rich and plain Agent reports now strip poor terminal emoji glyphs such as chart/check/warning icons before display, while keeping the report headings, list structure, and text readable.
-
Improved CLI readability for BitPro backtest result reports:
bitpro_backtest_list_resultstrace payloads now render as a Rich summary panel plus compact ranking table with rounded total return, drawdown, Sharpe, win rate, trade count, and period fields instead of falling back to long raw Markdown bullets. Plain structured output also uses concise ranking rows while preserving thetotal_return_pctsource-of-truth metric. -
Updated the high-visibility product positioning copy to emphasize HyperTrade as "A crypto trading agent for market research and execution" instead of a platform/system/harness; README, product spec, Chinese README, and CLI welcome banner now use the trading-agent framing.
-
Added first-class local remote-login configuration to the CLI:
hypertrade /login/ht /loginnow prompts for API URL, username, and password, writes~/.hypertrade/client.envwith0600permissions, and makes laterht/ht ask ...commands default to the saved remote API unless--localis passed. ExplicitHYPERTRADE_*environment variables still override saved config for automation. -
Simplified
/harnessinto a core operator workbench: the page now keeps Agent run creation, report reading, tool trace, Memory search/detail, RAG search, OKX top movers, recent runs, and core telemetry. Advanced controls for BitPro MCP contract display, provider switching, paper lifecycle, live approval/execution, strategy lab/backtests, evals, Feishu send, and Memory disable were removed from the primary UI; the underlying privileged API/CLI paths remain guarded where they still exist. -
Removed the
/harnesslogin wall for workbench observability: the frontend now loads live overview/Memory data directly, shows real run history and trace instead of preview zeros, and no longer renders the sidebar login form. Public workbench/research endpoints cover overview, Agent runs, market reads, RAG, Memory list, strategy research/experiments, and backtests; privileged mutations such as provider selection, paper controls, live approval/execution, Memory disable, and Feishu send remain admin-authenticated. -
Added a BitPro backtest result read path for page-parity questions:
bitpro_backtest_list_resultsnow preflightsbitpro_capabilities/bitpro_health, readsbacktest_list_resultswithoffset/limitpagination, filters actualtotal_return_pct, enriches strategy names throughstrategy_get, renders a dedicatedBitPro 回测结果report section, and teaches the planner not to substitute annualized return or inferred values for total backtest return. -
Changed the production host CLI wrapper so
/usr/local/bin/hypertradestarts a short-lived remote client container that connects tohttp://api:3334instead ofdocker compose execinto the long-runninghypertrade-apiservice. Deployment can still interrupt an in-flight API request, but it no longer kills the operator's terminal session; the CLI now prints a retryable remote API message on HTTP disconnects and returns to the chat loop. -
Folded low-signal Rich CLI trace output by default: graph runtime nodes, BitPro capability/health preflight rows, and nested BitPro subcalls are now summarized instead of printed as a long table; business-level tools remain visible with call counts, and
HYPERTRADE_TRACE=fullrestores full trace output for audits through both local CLI and the server host wrapper. -
Fixed BitPro paper/simulation inventory reporting: production
paper_dashboardwas verified to expose only the current dashboard strategy (strategy_id=105), whilestrategy_search(status=running)exposed 12 running strategies. HyperTrade now augments unfilteredbitpro_paper_dashboardwith safe-paginated running strategy inventory, addspaper_scopemetadata, teaches the planner not to infer a single strategy from the current dashboard view, and renders a dedicatedBitPro 模拟盘状态report section. -
Implemented the BitPro MCP adapter in HyperTrade: server-side settings for
BITPRO_MCP_API_BASE/token/header,BitProMcpClient,BitProToolAdapter, Agent tool schemas and executor wiring, nested trace events forbitpro_capabilities->bitpro_health-> read/non-live lifecycle tool calls, admin API endpoints for health/K-lines/paper dashboard/live positions,/harnessBitPro adapter status, andcandle_source=bitpro_mcpbacktest data access. -
Added Rich Markdown fallback rendering for CLI reports: when structured JSON/trace sections are unavailable, interactive/Rich output now formats Markdown headings, lists, and tables instead of showing raw
###and pipe-table source;HYPERTRADE_RENDERER=plainkeeps script-friendly raw Markdown. -
Added interactive CLI Agent thinking feedback: free-form prompts now show a live
Thought/Thinkinganimation in TTY sessions while waiting for planner/tool/final-report events, while non-TTY script output keeps stableAgent status:lines. -
Added CLI command/tool descriptions:
/helpnow renders every slash command with a purpose statement, and/toolsprints each registered Agent tool with category, approval marker, and registry description. -
Added BitPro strategy lifecycle Agent tools: strategy search/generation/creation, BitPro-owned backtest job start/status reads, and paper/simulation configure/start/pause/resume/stop. Live mutation tools remain blocked by the BitPro adapter.
-
Added HyperTrade-side support for the forthcoming BitPro
strategy_updateMCP tool: API-path mapping toPUT /strategies/{strategy_id},BitProToolAdapter.strategy_update, Agent planner schema, AgentKernel dispatch, nested trace namebitpro.strategy_update,/harnesstool listing, and docs. This lets HyperTrade rename or patch BitPro strategies through MCP once BitPro exposes the tool, without direct DB writes. -
Validated the production BitPro MCP strategy R&D loop on the server using MCP tools only.
bitpro_capabilitiesreturnedbitpro-mcp-v1with live trading disabled,bitpro_healthreturned healthy, andmarket_klinesconfirmed 720 real ETH/USDT:USDT 1h candles from2026-05-10T14:00:00Zto2026-06-09T13:00:00Z. -
Created DB-backed BaseStrategy strategy
#293named[永续][1h][趋势突破] ETH/USDT · Agent EMA ATR 回撤 · paper-v1 20260609134540throughstrategy_validate_codeandstrategy_create(script_content=...); no BitPro Python strategy files were edited and no BitPro restart was required. -
Started BitPro-owned backtest job
a292d098-0657-411d-9fff-3c82b9b384d8; result#196completed for2026-05-10to2026-06-09with4.0441%total return,1.4438%max drawdown,11trades,0.8029Sharpe,63.64%win rate, and final capital10404.4128. -
Because the explicit gate passed (trade count >= 1, return > 0, absolute max drawdown <= 15%), configured and started paper dry-run for strategy
#293. Live mutation tools were not called. -
./scripts/check.sh-> frontend install/lint/test/build passed; ruff, mypy, pytest passed with 86 tests for the BitPro strategy lifecycle slice. -
Redesigned the
/harnessoperator UI toward a Chinese-first production console: sidebar, header, run monitor, tool trace, Memory/RAG, paper runtime, live approval, strategy lab, and status labels now use consistent Chinese technical copy while preserving protocol/tool names. Added a visible BitPro MCP access panel that documents the requiredbitpro_capabilities->bitpro_health-> read-tool selection flow, and addeddocs/runbooks/bitpro-mcp-data-access.mdfor server-side MCP data access. -
Fixed the
/harnesssidebar section navigation so clicking行情摘要,Memory, orRAGupdates the active sidebar item instead of leavingHarnesspermanently highlighted. Added a frontend regression test for the clicked section state and browser-verified the local page with Playwright. -
Reduced repetitive investment-advice disclaimer output for routine Agent/CLI usage: the welcome banner, deterministic market shortcuts, structured market reports, and planner system prompt no longer force a fixed disclaimer on every ordinary market/RAG/Memory response. Strategy, backtest, Testnet, live-order, and recommendation-like prompts still retain the research/risk boundary. Updated acceptance tests,
docs/spec.md,docs/contracts/sprint-32-production-agent-bitpro-tools.md,docs/testing/agent-acceptance-test-plan.md, anddocs/knowledge/tool-usage-guide.md. -
Applied
codex-project-templatedevelopment harness. -
Added FastAPI backend, AgentKernel, ToolRegistry, RAG, Memory, OKX market parser, worker loops, Alembic migration.
-
Added React/Vite
/harnessand market summary frontend surface. -
Added Docker Compose, Nginx config, self-hosted GitHub Actions deployment.
-
Added
/api/harness/overviewand wired/harnessto live Provider, Tool, market, Agent run, RAG, Memory, and trace state. -
Added configurable
COOKIE_SECUREso the current HTTP3333deployment can keep admin sessions, while HTTPS deployments can opt in to secure cookies. -
Added Sprint 02 automatic paper trading runtime with paper sessions, deterministic signals, simulated fills/positions, pause/resume API, worker loop, and
/harnessPaper Runtime panel. -
Added Sprint 03 strategy research and Backtrader backtest workflow with persisted research records, backtest runs, Markdown/JSON reports, API endpoints, and
/harnessStrategy Lab panel. -
Added Sprint 04 CLI conversation harness with
hypertrade askandhypertrade chatover the same FastAPI Agent runtime. -
Added Sprint 05 standalone hybrid CLI runtime so bare
hypertradestarts an Agent terminal,--localforces local AgentKernel mode, and--remoteconnects to a deployed API. -
Added Sprint 06 CLI slash commands for
/help,/status,/model,/providers,/tools,/runs,/memory,/strategy, and/backtestsin local and remote interactive chat. -
Added Sprint 07 CLI workflow shortcuts
/research <prompt>and/backtestto trigger strategy research and Backtrader backtests without a full Agent run. -
Added Sprint 08 LLM-driven agent planner:
DeepSeekClient,AgentPlannermulti-turn tool-calling loop, and updatedAgentKernelto use real DeepSeek function calling whenDEEPSEEK_API_KEYis configured. Sprint 67 later removed the natural-language no-key market fallback. -
Fixed DeepSeek thinking-mode compatibility by preserving
reasoning_contentacross tool-call turns. -
Added Sprint 09 exact market ticker path:
market_tickerplanner tool,market.tickerregistry entry, exactMarketRepository.get_ticker(), and symbol normalization for any listed OKX USDT SWAP symbol such as ETH, SOL, DOGE, or PEPE. -
Added stable planner report rendering for successful
market_tickercalls so CLI/API answers always include exact price, UTC0 change, 24h volume, source, and timestamp. -
Added Sprint 10 market candles research path locally: OKX candle parsing, REST candle fetcher, deterministic trend feature extraction,
market_candlesplanner tool,market.candlesregistry entry, AgentKernel execution, and stable K-line trend report block. -
Added Sprint 11 market relative-strength compare locally:
market_compareplanner tool,market.compareregistry entry, deterministic strength scoring, ranking payload, and stable multi-symbol comparison report block. -
Added Sprint 12 CLI/API streaming locally: AgentKernel progress event emission,
POST /api/agent/runs/streamSSE endpoint, remote SSE parsing, local streaming rendering, and CLI progress lines for run/tool events. -
Added Sprint 13 live candle backtest path locally: BacktestService can fetch OKX candles, convert them into Strategy SDK candles, accept API live-candle options, and pass
/backtest --live --symbol ETH --bar 1H --limit 100from CLI. -
Added Sprint 14 Agent acceptance tests locally: deterministic replay tests now cover exact-symbol ticker output, K-line trend plus relative-strength comparison, RAG + Memory auditability, strategy research + backtest chaining, and report quality guardrails.
-
Added
docs/testing/agent-acceptance-test-plan.mdwith automated cases, server smoke commands, expected output checks, and forbidden advice phrases. -
Added Sprint 15 CLI market shortcuts locally:
/price,/candles, and/comparecall deterministic market payloads without waiting for LLM planning. -
Improved CLI Agent streaming status text so free-form runs show run creation, planning, tool execution, tool completion, and final report generation.
-
Added Sprint 16 structured CLI report rendering locally: market-summary
report_jsonand market tool trace outputs now render as structured CLI sections before falling back to Markdown. -
Added Sprint 17 Rich CLI rendering locally: structured market reports can render as terminal panels/tables when
HYPERTRADE_RENDERER=richor when running on a TTY, whileHYPERTRADE_RENDERER=plainkeeps script-friendly output. -
Updated the host CLI wrapper to pass safe display environment variables (
HYPERTRADE_RENDERER,NO_COLOR) into the API container. -
Added Sprint 18 paper CLI controls locally:
/paper status,/paper pause, and/paper resumecall the existing paper runtime without starting an Agent run. -
Added Sprint 19 BitPro archived K-line backtest source locally:
BITPRO_SQLITE_PATHcan point to a BitPro SQLite DB,/backtest --source bitpro --symbol ETH --bar 1H --limit 500routes archived K-lines into Backtrader, and Compose mounts${BITPRO_HOST_DATA_DIR:-/opt/bitpro/data}read-only at/bitpro-data. -
Added Sprint 20 paper lifecycle controls locally: API and CLI now support
/paper close [symbol]and/paper reset, close positions with realized PnL/events/fills, and reset by creating a new auditable running session. -
Added Sprint 21 live/testnet order approval gate locally:
live_order_intentsschema/service/API/CLI, Agent plannerlive_order_intenttool, and approve/reject status transitions without exchange execution. -
Added Sprint 22 frontend harness parity locally:
/harnessnow includes Agent streaming status, market ticker/candle/compare shortcuts, paper close/reset controls, and Live Approval intent create/approve/reject UI. -
Added Sprint 23 frontend UX locally: styled Markdown report reader with raw toggle, Memory Manager with inspect/disable, and full backtest parameter form for strategy/source/symbol/bar/limit/cash.
-
Added Sprint 24 Agent graph runtime locally: graph node trace events,
run_state_json, and streaming graph status. Sprint 67 later replaced the natural-language deterministic fallback path with provider-unavailable reporting. -
Added Sprint 25 Provider Router locally:
ChatProviderprotocol, OpenAI-compatible adapter, provider selection API, CLI/model <provider>, and frontend provider switcher. -
Added Sprint 26 RAG v2 locally: citation-ready RAG hits, deterministic vector fallback,
/api/rag/search, CLI/rag, frontend RAG search, and Agent citation block support. -
Added Sprint 27 Memory v2 locally: importance/tags/confidence/usage fields, exact dedupe, search API, CLI
/memory searchand/memory disable, and frontend Memory search/tag display. -
Added Sprint 28 RiskEngine locally: Mainnet execution block, SWAP-only checks, max notional/open-intent checks, risk status persistence, and frontend/CLI risk display.
-
Added Sprint 29 OKX Testnet signed execution locally: signed REST client, execute endpoint, CLI
/live execute, redacted execution audit, and frontend execute button for approved intents. -
Added Sprint 30 strategy experiment workflow locally: hypothesis/data/backtest/critique/revision/report graph,
strategy_experiments, API/CLI/frontend surfaces. -
Added Sprint 31 observability/evals/runbooks locally: deterministic eval suite,
/api/evals/status, CLI/evals, frontend eval panel, and operations runbooks. -
./scripts/check.sh-> frontend install/lint/test/build passed; ruff, mypy, pytest passed with 72 tests. -
Implementation commit
4730898pushed toorigin/main; GitHub Actions run26862283002completed successfully and recorded deployed SHA4730898c0b5bf9ce7778da230afb1930e427b910. -
Server smoke passed for Sprints 24-31: server-local API
GET 127.0.0.1:3334/api/healthand NginxGET 127.0.0.1:3333/api/healthreturned OK. -
Server authenticated
/api/harness/overviewsmoke returned default providerdeepseekwith key statusconfigured,359tickers,12tools,4RAG chunks,17active memory items,33Agent runs,110trace events,0pending live intents, and eval suitepassedwith5cases. -
Server CLI smoke passed through host
hypertrade --remote http://127.0.0.1:3334:/status,/model,/evals,/rag 风控, and/memory search 风控all returned stable output. -
Server Agent graph smoke passed with
hypertrade --remote http://127.0.0.1:3334 ask "看下ETH行情": runrun_387de54f5531475f8d02completed with graph trace events forintent_classify,plan_tools,approval_check,execute_tool,reflect, andfinal_report, plus market ticker/candle tool calls. -
Reframed Sprint 32 toward production-grade Agent operation: project copy, source comments, and
docs/knowledge/tool-usage-guide.mdnow emphasize stability, auditability, operator workflows, and BitPro API tool-surface requirements. -
./scripts/check.sh-> frontend install/lint/test/build passed; ruff, mypy, pytest passed with 67 tests. -
Server deployed SHA
3a83b18; frontend build producedindex-BLcqGC9-.jsandindex-Dty7kLGl.css. -
Server smoke passed: API and Nginx health OK; authenticated overview returned
359tickers,17active memory items,0pending live order intents; authenticated/api/memoryreturned17items. -
npm exec --yes pnpm@10 -- -C frontend lint,test, andbuild-> passed. -
./scripts/check.sh-> frontend install/lint/test/build passed; ruff, mypy, pytest passed with 67 tests. -
Server deployed SHA
a35e374; server-localGET 127.0.0.1:3334/api/healthand NginxGET 127.0.0.1:3333/api/healthreturned OK. -
Server authenticated
/api/harness/overviewsmoke returned359tickers,0pending live order intents,1recent live order intent, and paper sessionrunning. -
uv run pytest tests/test_paper_service.py tests/test_api.py tests/test_cli.py -q-> 27 passed. -
uv run pytest tests/test_live_order_intents.py tests/test_api.py tests/test_cli.py -q-> 23 passed. -
uv run ruff check backend tests,uv run mypy backend/src-> clean. -
./scripts/check.sh-> frontend install/lint/test/build passed; ruff, mypy, pytest passed with 67 tests. -
Server deployed SHA
9f02367; Alembic migrated0003_strategy_backtest -> 0004_live_order_intents; server-localGET 127.0.0.1:3334/api/healthreturned OK. -
Server host CLI smoke passed:
/paper statusrendered the running paper session,/live intent ETH buy 0.01 --reason deploy smokecreated pending testnet intentloi_10c5e2b8e34f469cb5e7, and/live reject loi_10c5e2b8e34f469cb5e7 --reason deploy smoke cleanupmoved it torejected. -
Sprint 32 production repositioning completed locally: removed non-production project wording, replaced Sprint 32 contract with production Agent + BitPro tool-surface requirements, added
docs/architecture/17-bitpro-tool-adapter.md, and fixed Agent market-summary tests to isolate OKX REST through injected settings. -
./scripts/check.sh-> frontend install/lint/test/build passed; ruff, mypy, and pytest passed with 72 tests. -
uv run pytest -q-> 33 passed (5 new planner tests). -
uv run ruff checkanduv run mypy-> clean. -
./scripts/check.sh-> frontend install/lint/test/build passed; ruff, mypy, pytest passed with 34 tests. -
uv run pytest tests/test_market_ticker_tool.py tests/test_agent_planner.py -q-> 10 passed. -
./scripts/check.sh-> frontend install/lint/test/build passed; ruff, mypy, pytest passed with 38 tests. -
uv run pytest tests/test_market_ticker_tool.py tests/test_agent_planner.py -q-> 11 passed. -
./scripts/check.sh-> frontend install/lint/test/build passed; ruff, mypy, pytest passed with 39 tests. -
uv run pytest tests/test_market_candles_tool.py tests/test_agent_planner.py -q-> 12 passed. -
./scripts/check.sh-> frontend install/lint/test/build passed; ruff, mypy, pytest passed with 44 tests. -
uv run pytest tests/test_market_compare_tool.py tests/test_agent_planner.py -q-> 11 passed. -
./scripts/check.sh-> frontend install/lint/test/build passed; ruff, mypy, pytest passed with 47 tests. -
uv run pytest tests/test_cli.py tests/test_api.py -q-> 15 passed. -
./scripts/check.sh-> frontend install/lint/test/build passed; ruff, mypy, pytest passed with 49 tests. -
uv run pytest tests/test_live_candle_backtest.py tests/test_strategy_backtest_api.py tests/test_cli.py -q-> 16 passed. -
./scripts/check.sh-> frontend install/lint/test/build passed; ruff, mypy, pytest passed with 52 tests. -
uv run pytest tests/test_agent_acceptance.py -q-> 4 passed. -
./scripts/check.sh-> frontend install/lint/test/build passed; ruff, mypy, pytest passed with 56 tests. -
uv run pytest tests/test_cli.py tests/test_api.py -q-> 17 passed. -
./scripts/check.sh-> frontend install/lint/test/build passed; ruff, mypy, pytest passed with 57 tests. -
uv run pytest tests/test_cli.py -q-> 15 passed. -
./scripts/check.sh-> frontend install/lint/test/build passed; ruff, mypy, pytest passed with 59 tests. -
uv run pytest tests/test_cli.py -q-> 16 passed. -
./scripts/check.sh-> frontend install/lint/test/build passed; ruff, mypy, pytest passed with 60 tests. -
uv run pytest tests/test_cli.py -q-> 16 passed. -
./scripts/check.sh-> frontend install/lint/test/build passed; ruff, mypy, pytest passed with 60 tests. -
uv run pytest tests/test_bitpro_archive_backtest.py tests/test_cli.py -q-> 19 passed. -
./scripts/check.sh-> frontend install/lint/test/build passed; ruff, mypy, pytest passed with 63 tests. -
Server deployed SHA
bd58dd7; server-localGET 127.0.0.1:3334/api/healthreturned OK. -
Server BitPro archive backtest smoke passed through host
hypertrade:/research 研究BTC趋势突破created researchsrch_c51a2aabfa4a448194c8;/backtest --source bitpro --symbol BTC --bar 1H --limit 200createdbt_26ee2b9416b24f5db66cusingbitpro_sqlite_candles,BTC-USDT-SWAP,1H, and 200 candles. -
Server deployed SHA
9f3fa0c; server-localGET 127.0.0.1:3334/api/healthreturned OK. -
Server paper CLI smoke passed through host
hypertrade:/paper statusprinted session, positions, fills, and events;/paper pausereported paused;/paper resumereported running. -
Server deployed SHA
cb02da6; server-localGET 127.0.0.1:3334/api/healthreturned OK. -
Server Rich CLI smoke passed with
HYPERTRADE_RENDERER=rich hypertrade ask "看下ETH行情": output showed Rich panels and tables for run header, tool trace,Agent Report, andTicker. -
Server deployed SHA
fee6be7; server-localGET 127.0.0.1:3334/api/healthreturned OK. -
Server structured CLI smoke passed with
hypertrade ask "看下ETH行情": output showedAgent Report,Ticker, and multipleTrendsections rendered from structured trace outputs instead of raw Markdown. -
Server deployed SHA
e975d00; server-localGET 127.0.0.1:3334/api/healthandGET 127.0.0.1:3333/api/healthreturned OK. -
Server CLI shortcut smoke passed through host
hypertrade:/price ETH,/candles ETH --bar 1H --limit 50, and/compare ETH SOL --bar 4H --limit 100returned exact ticker, K-line trend, and relative-strength output withokx_restdata source. -
Server CLI Agent status smoke passed with
hypertrade ask "看下ETH行情": output showed run creation, planning, tool execution, tool completion, final report generation, and completed report. -
Server deployed SHA
0afb197; externalGET /api/healthreturned OK. -
Server deployed SHA
48859cb; externalGET /api/healthreturned OK. -
Server live-candle backtest smoke passed with host
hypertrade:/research 研究ETH趋势突破createdsrch_987a780e0715494a99a3, then/backtest --live --symbol ETH --bar 1H --limit 100createdbt_480d647199dd4d16b960usingokx_rest_candles,ETH-USDT-SWAP,1H, and 100 candles. -
Server deployed SHA
4ce55f8; externalGET /api/healthreturned OK. -
Server streaming smoke
hypertrade ask "比较 ETH 和 SOL 哪个更强"produced runrun_c6909801a50243649c32and printed progress lines before the final report:Run started,Tool call,Tool result, andRun completed. -
Server deployed SHA
4de0a4b; externalGET /api/healthreturned OK. -
Server
/toolsslash command showsmarket.compare [market]. -
Server comparison smoke
hypertrade ask "比较 ETH 和 SOL 哪个更强"produced runrun_7b35c4bfa1e34c899425withmarket_comparecalls, and the final answer included stable relative-strength ranking blocks for ETH/SOL across 1H, 4H, and 1D. -
Server deployed SHA
a258e05; externalGET /api/healthreturned OK. -
Server
/toolsslash command showsmarket.candles [market]. -
Server non-BTC trend smoke
hypertrade ask "看下ETH这两天走势"produced runrun_f6d262efb67147eca905withmarket_tickerand twomarket_candlescalls, and the final answer included stable K-line trend blocks forETH-USDT-SWAP1H and 1D. -
Server deployed SHA
16b4ac6; externalGET /api/healthreturned OK. -
Server
/toolsslash command showsmarket.ticker [market]. -
Server non-BTC CLI smoke
hypertrade ask "看下ETH行情"produced runrun_d745abf2ec4246a38315withmarket_ticker,market_summary, andmemory_writetool calls. -
Server trace query verified
market_tickeroutputinst_id=ETH-USDT-SWAP,found=true,data_source=okx_rest. -
Server deployed SHA
38f484f; externalGET /api/healthreturned OK. -
Server non-BTC CLI smoke
hypertrade ask "看下ETH行情"produced runrun_674ab692117a443cb969withmarket_tickerandrag_search, and the final answer included the stable exact ticker block forETH-USDT-SWAP. -
Server deployed SHA
8d91748; externalGET /api/healthreturned OK. -
Server
/statusslash command smoke passed through hosthypertrade. -
Server DeepSeek planner smoke passed with
hypertrade ask "看下比特币行情", producing runrun_363a592c965141a8b914withmarket_summary,rag_search,memory_search, andmemory_writetool calls.
./scripts/check.sh-> frontend install/lint/test/build passed; ruff, mypy, pytest passed with 17 tests.uv run pytest -q-> 15 passed.npm exec --yes pnpm@10 -- -C frontend test-> 1 passed.npm exec --yes pnpm@10 -- -C frontend build-> production build passed.- Playwright opened
http://127.0.0.1:3333, logged in, and triggered an Agent market summary. - Server deployment verified
http://47.79.36.92:3333/api/health. - Server authenticated
/api/harness/overviewthrough Nginx verified with 344 OKX SWAP tickers, 3 Agent runs, DeepSeek configured, 1 RAG document, 3 active Memory items, and 9 trace events. - Server authenticated
/api/paper/statusthrough Nginx verified paper sessionrunning, equity100000, 10 positions, and 10 recent fills. - Worker logs verified
paper_trading tick status=running fills=10. - Server deployment ran Alembic
0003_strategy_backtest, rebuilt API/worker images, and deployed SHAe38f3e3. - Server authenticated strategy/backtest smoke created research
srch_12196a7d8aff4fbda649, backtestbt_9fc24eda9bff4e02bde0, strategymomentum_breakout_v1, return0.019000, trade count1, and confirmed/api/harness/overview.strategy_lab. uv run pytest tests/test_cli.py -q-> 3 passed../scripts/check.sh-> frontend install/lint/test/build passed; ruff, mypy, pytest passed with 20 tests.- Server deployed SHA
8528171; externalGET /api/healthreturned OK. - Server container CLI smoke passed with
docker compose exec -T -e HYPERTRADE_API_URL=http://127.0.0.1:3334 api hypertrade ask "请做行情归纳", producing runrun_24d3927e3e324496bac3withmarket.summary,rag.search, andmemory.writetool calls. uv run pytest tests/test_cli.py -q-> 6 passed../scripts/check.sh-> frontend install/lint/test/build passed; ruff, mypy, pytest passed with 23 tests.- Server deployed SHA
d125406; externalGET /api/healthreturned OK. - Server local standalone CLI smoke passed with
docker compose exec -T api hypertrade ask "请做行情归纳", producing runrun_77da091e850346fa9da7withmarket.summary,rag.search, andmemory.write. - Server remote CLI smoke passed with
docker compose exec -T api hypertrade --remote http://127.0.0.1:3334 ask "请做行情归纳", producing runrun_d5b161b8d5a54f659328. - Server bare interactive CLI smoke passed with
printf ":q\n" | docker compose exec -T api hypertrade. - Server host CLI wrapper installed at
/usr/local/bin/hypertradeviadeploy/deploy.sh; root shellhypertradeenters chat andhypertrade ask "请做行情归纳"produced runrun_83db62b8e9184eadaab7. uv run pytest tests/test_cli.py -q-> 9 passed../scripts/check.sh-> frontend install/lint/test/build passed; ruff, mypy, pytest passed with 25 tests.uv run pytest tests/test_cli.py -q-> 11 passed../scripts/check.sh-> frontend install/lint/test/build passed; ruff, mypy, pytest passed with 28 tests.- Implemented the read-only BitPro MCP adapter and Agent/API/backtest data-direct wiring:
bitpro_capabilities -> bitpro_health -> market_klinespreflight order, HyperTrade toolsbitpro.*,candle_source=bitpro_mcp, and/api/bitpro/*admin endpoints. ./scripts/check.sh-> frontend install/lint/test/build passed; ruff, mypy, pytest passed with 79 tests before deploy.- Deployed SHA
1dab3c1to production; server/api/healthpassed and/api/harness/overviewreported BitPro adaptermcp_read_only, token configured, and live writes disabled. - Production BitPro MCP smoke initially returned API 500 because the HyperTrade container used
127.0.0.1:8889, which pointed to the container itself. Added structured BitPro 502 handling and Docker Compose host-gateway mapping so containerized deployments can usehost.docker.internal:8889.
- OKX live WebSocket ingestion is implemented but not exercised against the remote server in this local run.
- V1 does not include automatic PostgreSQL backup.
- Sprint 13 adds live OKX candle input, but does not persist historical candles to PostgreSQL.
- OKX Testnet signed execution is implemented and documented, but this smoke pass did not place an external Testnet order; use
docs/runbooks/okx-testnet-order-smoke.mdfor an explicit tiny-size order smoke. - Public
http://47.79.36.92:3333/api/healthtimed out from the current local environment after Sprint 15 deploy, while server-local Nginx/API health checks passed; likely requires cloud security group or caller IP whitelist review.
- Check cloud security group / caller IP whitelist for public port
3333. - Add an archived candle source reader for BitPro file-store data if server data expands beyond SQLite.
- Run an explicit OKX Testnet tiny-size order smoke after confirming the server
.envtestnet credentials and desired symbol/size.