chore: prepare v1.0.0 release with changelog, readme, version bump, and test fixes#168
chore: prepare v1.0.0 release with changelog, readme, version bump, and test fixes#168
Conversation
- Bump version from 0.1.0 to 1.0.0 in package.json, pyproject.toml, __init__.py - Create comprehensive CHANGELOG.md covering all features since inception - Enhance README.md with full feature list, exchange support table, architecture diagram, plugin docs, and Chinese translation section - Update uv.lock to reflect new version - Security scan: no hardcoded secrets found
…ng across files Replace mock.module() with spyOn() in 5 test files to prevent Bun's module mock registry from polluting other test files during full suite runs. - permissions.test.ts: spyOn(fs, 'existsSync'/'readFileSync') + mockRestore - hooks.test.ts: same pattern for fs mocks - loader.test.ts: spyOn(fs, 'readFileSync') for skill loader tests - useDashboardData.test.ts: spyOn OKX/Binance exports instead of mock.module - delegation.test.ts: spyOn registry.discoverAgentConfigs instead of mock.module Root cause: Bun's mock.module() globally replaces modules in the ESM registry with no restore mechanism, causing 40 tests across 10 files to receive mocked modules (fs, OKX, Binance, agents/registry) instead of real implementations.
ChoKhoOu
left a comment
There was a problem hiding this comment.
APPROVE
Code Review: PR #168 — v1.0.0 Release Preparation
Version Bump (4 files) ✅
All version references consistently updated from 0.1.0 → 1.0.0:
package.jsonpython/pyproject.tomlpython/tino_daemon/__init__.pypython/uv.lock
No stale version references remain.
CHANGELOG.md ✅
- Follows Keep a Changelog format correctly
- Comprehensive coverage of all major features organized into 12 logical sections (Core Platform, Financial Data Providers, Exchange & Trading, Backtesting, Strategy System, Quantitative Analysis, UI, Skills, Tools, Notifications, Infrastructure, DX)
- Release link at bottom points to the correct tag URL (will resolve once the GitHub Release is created)
- Adheres to Semantic Versioning as declared
README.md ✅
- Version badge added correctly
- Feature list updated to reflect current state: multi-exchange support (Binance, Bybit, OKX, Bitget), cross-exchange portfolio, 10+ strategy templates, advanced order types, AI risk management, plugin system
- Data providers correctly changed from "6" to "6+" (now includes CoinGlass)
- Architecture diagram updated: "14 Tools + 8 Skills" → "14 Tools + 7 Skills" — verified against the Skills table (7 entries)
- Quick Start improved with prerequisites table (Bun, Python, uv) and clearer install flow
- New sections: Supported Exchanges table, Plugin Development,
backtest_historytool entry, Python test commands, Conventional Commits reference - Bilingual content: Chinese section (
中文说明) is well-written, accurate, and mirrors the English content (features, quick start, trading safety, development, license) - Provider config simplification: Removed verbose examples for 5 providers, keeping OpenAI + Anthropic as representative patterns — reasonable for readability
- Directory tree updated to match current architecture (plugins/, docs/, strategies/)
Test Fixes (5 files) ✅
Migration from mock.module() → spyOn() to resolve cross-file mock leaking:
hooks.test.ts:mock.module('fs')→spyOn(fs, 'existsSync')+spyOn(fs, 'readFileSync')permissions.test.ts: Same pattern as hooksuseDashboardData.test.ts:mock.module('@/tools/finance/...')→spyOn(binanceModule, ...)+spyOn(okxModule, ...); PortfolioClient mock replaced with inline object literal — cleaner and avoids module registry pollutionloader.test.ts:mock.module('fs')→spyOn(fs, 'readFileSync')delegation.test.ts: Partial migration —discoverAgentConfigsmoved tospyOn;SessionRuntimeretainsmock.module(reasonable since class constructors are harder to spy on)
All test files properly restore spies in afterAll() blocks. The as any casts on mockImplementation returns are a pragmatic workaround for stricter spy typing.
Security ✅
- No hardcoded secrets, API keys, or credentials in the diff
- README examples use placeholders (
"sk-...","your-anthropic-key") - No dangerous imports or eval patterns introduced
Minor Observations (non-blocking)
delegation.test.tsstill has one remainingmock.moduleforSessionRuntime— could cause residual leaking in theory, but acceptable given the class mocking complexity- CHANGELOG release link (
v1.0.0tag) doesn't resolve yet — expected, will be valid post-release
Overall: well-structured release preparation with consistent version bumps, comprehensive documentation, accurate bilingual content, and correct test fix approach. No breaking changes introduced.
ChoKhoOu
left a comment
There was a problem hiding this comment.
COMPLETE
Requirement Verification: Issue #49 (PRD-047: v1.0 Official Release)
Acceptance Criteria Checklist
| # | Criterion | Status | Evidence |
|---|---|---|---|
| 1 | Version 1.0.0 | PASS | package.json, pyproject.toml, __init__.py, uv.lock all bumped from 0.1.0 to 1.0.0; README badge updated |
| 2 | CHANGELOG.md complete | PASS | 145-line changelog following Keep a Changelog format, covering 12 categories: Core Platform, Financial Data Providers, Exchange & Trading, Backtesting, Strategy System, Quant Analysis, UI, Skills, Tools, Notifications, Infrastructure, Developer Experience |
| 3 | GitHub Release published | SKIPPED | Not automatable — requires manual binary builds and release creation |
| 4 | README comprehensive (EN + CN) | PASS | English: updated features, quick start, architecture, tools/exchanges tables, strategy templates, plugin docs. Chinese: full 中文说明 section with features, quick start, trading safety, development commands |
| 5 | Installation guide (macOS/Linux/Windows) | PASS (minor gap) | Prerequisites table with Bun/Python/uv. Script install via curl | bash covers macOS/Linux. "From source" path (git clone + bun install) is cross-platform. Note: no explicit Windows-specific install commands (e.g., PowerShell for Bun/uv), though all tools support Windows |
| 6 | All bun test pass |
PASS | PR reports 1611 tests passing, 0 failures |
| 7 | All pytest pass |
PASS | PR test plan includes pytest passing |
| 8 | bun run typecheck passes |
PASS | PR reports typecheck clean |
| 9 | Paper Trading 72h verification | SKIPPED | Not automatable |
| 10 | No hardcoded secrets | PASS | Security scan in PR confirms no hardcoded secrets; diff review shows only placeholder values ("your-anthropic-key", "sk-...") |
Additional Changes (Beyond Requirements)
- Test infrastructure fixes: 5 test files refactored from
mock.moduletospyOnpattern, fixing 40 previously failing tests due to mock leaking across filessrc/config/__tests__/hooks.test.tssrc/config/__tests__/permissions.test.tssrc/hooks/__tests__/useDashboardData.test.tssrc/skills/__tests__/loader.test.tssrc/tools/agent/__tests__/delegation.test.ts
Minor Observation
- Windows installation: The prerequisite install commands only show Unix-style (
curl | bash). Consider adding PowerShell alternatives (irm bun.sh/install.ps1 | iex,irm https://astral.sh/uv/install.ps1 | iex) in a future update. This is not blocking since the "from source" path works cross-platform.
Verdict
All automatable acceptance criteria from Issue #49 are met. The PR correctly bumps version to 1.0.0, provides a comprehensive changelog, delivers bilingual README documentation, passes all tests and typecheck, and contains no hardcoded secrets. The test infrastructure improvements (mock.module -> spyOn migration) are a valuable bonus that improves test reliability.
Summary
package.jsonandpython/pyproject.tomlCHANGELOG.mdcovering all features: AI agent, 14 tools, 6 data providers, multi-exchange support, Hummingbot connectors, cross-exchange portfolio, plugin SDK, data flow unification, anomaly detection, risk advisor, advanced orders, streamingREADME.mdwith bilingual (English + Chinese) content: feature highlights, quick start, architecture overview, plugin docs linksmock.moduleleaking across test filesCloses #49
Test Plan
bun run typecheckpassesbun test— all 1611 tests pass with 0 failurescd python && uv run pytestpasses🤖 Generated with Claude Code