tradingcodex 1.2.0__tar.gz → 1.2.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/CHANGELOG.md +32 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/PKG-INFO +1 -1
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/docs/README.md +2 -1
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/docs/codex-native-orchestration.md +11 -6
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/docs/data-sources-and-openbb.md +17 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/docs/deployment.md +24 -21
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/docs/generated-workspaces.md +35 -23
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/docs/harness.md +1 -1
- tradingcodex-1.2.2/docs/release-readiness.md +70 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/docs/roles-skills-and-workflows.md +15 -7
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/docs/system-architecture.md +1 -1
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/docs/user-facing-skills.md +5 -6
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/docs/validation-and-test-plan.md +24 -16
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/installation.md +5 -5
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/tests/test_codex_cli_compat.py +8 -4
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/tests/test_codex_native_orchestration.py +38 -13
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/tests/test_datasets.py +51 -1
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/tests/test_e2e_user_scenarios.py +3 -15
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/tests/test_guidebook_contract.py +8 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/tests/test_investment_brain_provenance.py +3 -8
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/tests/test_native_execution_gateway.py +2 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/tests/test_order_turn_grant.py +7 -15
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/tests/test_platform_runtime.py +2 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/tests/test_release_contract.py +53 -17
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/tests/test_research_forecast_surfaces.py +4 -1
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/tests/test_skill_runtime_boundaries.py +17 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/tests/test_source_snapshot_agent_contract.py +8 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/tradingcodex.egg-info/PKG-INFO +1 -1
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/tradingcodex_cli/commands/doctor.py +13 -4
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/tradingcodex_service/application/agents.py +1 -1
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/tradingcodex_service/mcp_runtime.py +25 -0
- tradingcodex-1.2.2/tradingcodex_service/version.py +1 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/workspace_templates/modules/codex-base/files/.codex/config.toml +2 -3
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/workspace_templates/modules/codex-base/files/.codex/hooks/tradingcodex_hook.py +1 -34
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/workspace_templates/modules/codex-base/files/.codex/hooks.json +1 -1
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/workspace_templates/modules/codex-base/files/.codex/prompts/base_instructions/fixed-role.md +1 -1
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/workspace_templates/modules/codex-base/files/AGENTS.md +6 -3
- tradingcodex-1.2.2/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-investor-context/SKILL.md +89 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-workflow/SKILL.md +38 -36
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/shared/tcx-data-qc/SKILL.md +6 -3
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/shared/tcx-source-gate/SKILL.md +17 -0
- tradingcodex-1.2.0/docs/release-readiness.md +0 -151
- tradingcodex-1.2.0/tradingcodex_service/version.py +0 -1
- tradingcodex-1.2.0/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-investor-context/SKILL.md +0 -92
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/CONTRIBUTING.md +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/LICENSE +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/MANIFEST.in +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/NOTICE +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/README.md +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/TRADEMARKS.md +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/apps/__init__.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/apps/audit/__init__.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/apps/audit/admin.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/apps/audit/apps.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/apps/audit/migrations/0001_v1_initial.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/apps/audit/migrations/__init__.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/apps/audit/models.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/apps/harness/__init__.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/apps/harness/admin.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/apps/harness/apps.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/apps/harness/migrations/0001_v1_initial.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/apps/harness/migrations/__init__.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/apps/harness/models.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/apps/harness/templatetags/__init__.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/apps/integrations/__init__.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/apps/integrations/admin.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/apps/integrations/apps.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/apps/integrations/migrations/0001_v1_initial.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/apps/integrations/migrations/__init__.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/apps/integrations/models.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/apps/mcp/__init__.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/apps/mcp/admin.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/apps/mcp/apps.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/apps/mcp/migrations/0001_v1_initial.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/apps/mcp/migrations/0002_remove_external_mcp_gate.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/apps/mcp/migrations/__init__.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/apps/mcp/models.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/apps/mcp/services.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/apps/orders/__init__.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/apps/orders/admin.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/apps/orders/apps.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/apps/orders/migrations/0001_v1_initial.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/apps/orders/migrations/__init__.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/apps/orders/models.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/apps/orders/services.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/apps/policy/__init__.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/apps/policy/admin.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/apps/policy/apps.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/apps/policy/migrations/0001_v1_initial.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/apps/policy/migrations/__init__.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/apps/policy/models.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/apps/policy/services.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/apps/portfolio/__init__.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/apps/portfolio/admin.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/apps/portfolio/apps.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/apps/portfolio/migrations/0001_v1_initial.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/apps/portfolio/migrations/__init__.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/apps/portfolio/models.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/assets/tradingcodex-banner-v1.png +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/assets/tradingcodex-banner-v2.png +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/assets/tradingcodex-banner-v3.png +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/assets/tradingcodex-banner.svg +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/docs/decision-memory.md +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/docs/financial-workflow-references.md +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/docs/guardrails.md +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/docs/improvement-loop.md +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/docs/interfaces-and-surfaces.md +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/docs/investment-brain-plugins.md +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/docs/knowledge-wikis.md +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/docs/licensing-and-commercialization.md +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/docs/product-direction.md +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/docs/research-memory-and-artifacts.md +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/docs/safety-policy-and-execution.md +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/frontend/index.html +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/frontend/package-lock.json +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/frontend/package.json +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/frontend/src/App.tsx +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/frontend/src/ViewerShell.tsx +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/frontend/src/api.ts +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/frontend/src/domain.ts +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/frontend/src/features/LibraryPage.tsx +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/frontend/src/features/SystemPage.tsx +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/frontend/src/features/WikiPage.tsx +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/frontend/src/main.tsx +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/frontend/src/navigation.js +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/frontend/src/navigation.test.js +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/frontend/src/styles.css +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/frontend/src/ui.tsx +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/frontend/src/viewer-data.js +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/frontend/tsconfig.json +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/frontend/vite.config.ts +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/install.sh +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/pyproject.toml +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/setup.cfg +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/tests/test_artifact_authentication.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/tests/test_artifact_catalog.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/tests/test_brain_skill.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/tests/test_broker_center_prd.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/tests/test_build_contract_metadata.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/tests/test_build_hook.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/tests/test_build_turn_grant.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/tests/test_calculation_runner.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/tests/test_clean_v1_cli_audit.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/tests/test_codex_capabilities.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/tests/test_codex_cli_contract.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/tests/test_decision_memory_core.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/tests/test_dev_bootstrap.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/tests/test_dynamic_artifact_quality.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/tests/test_evaluation_lab_hardening.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/tests/test_evaluation_profiles.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/tests/test_investment_analysis.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/tests/test_investment_brain_cli.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/tests/test_investment_brain_prompt_layers.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/tests/test_investment_brain_registry.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/tests/test_investor_context.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/tests/test_knowledge_wikis.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/tests/test_mcp_broker_release_health.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/tests/test_provider_source_approval.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/tests/test_research_object_catalog.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/tests/test_research_objects.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/tests/test_research_spec_profiles.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/tests/test_runtime_paths.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/tests/test_runtime_profile.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/tests/test_security_invariants.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/tests/test_v1_migrations.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/tests/test_v1_state_integrity.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/tests/test_viewer.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/tests/test_workspace_git_contract.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/tradingcodex.egg-info/SOURCES.txt +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/tradingcodex.egg-info/dependency_links.txt +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/tradingcodex.egg-info/entry_points.txt +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/tradingcodex.egg-info/requires.txt +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/tradingcodex.egg-info/top_level.txt +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/tradingcodex_cli/__init__.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/tradingcodex_cli/__main__.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/tradingcodex_cli/calculation-runtime-lock.json +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/tradingcodex_cli/calculation-runtime-requirements.txt +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/tradingcodex_cli/calculation_runner.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/tradingcodex_cli/commands/__init__.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/tradingcodex_cli/commands/bootstrap.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/tradingcodex_cli/commands/build.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/tradingcodex_cli/commands/connectors.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/tradingcodex_cli/commands/data_sources.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/tradingcodex_cli/commands/db.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/tradingcodex_cli/commands/decision.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/tradingcodex_cli/commands/evaluation.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/tradingcodex_cli/commands/forecast.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/tradingcodex_cli/commands/home.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/tradingcodex_cli/commands/investment_brains.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/tradingcodex_cli/commands/investor_context.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/tradingcodex_cli/commands/mcp.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/tradingcodex_cli/commands/orders.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/tradingcodex_cli/commands/policy.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/tradingcodex_cli/commands/profile.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/tradingcodex_cli/commands/research.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/tradingcodex_cli/commands/skills.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/tradingcodex_cli/commands/strategies.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/tradingcodex_cli/commands/subagents.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/tradingcodex_cli/commands/utils.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/tradingcodex_cli/commands/wikis.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/tradingcodex_cli/commands/workflow.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/tradingcodex_cli/commands/workspaces.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/tradingcodex_cli/generator.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/tradingcodex_cli/mcp_stdio.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/tradingcodex_cli/package_source.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/tradingcodex_cli/service_autostart.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/tradingcodex_cli/startup_status.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/tradingcodex_cli/versioning.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/tradingcodex_service/__init__.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/tradingcodex_service/admin.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/tradingcodex_service/api.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/tradingcodex_service/application/__init__.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/tradingcodex_service/application/analysis_runs.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/tradingcodex_service/application/artifact_bindings.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/tradingcodex_service/application/artifact_catalog.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/tradingcodex_service/application/artifact_quality.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/tradingcodex_service/application/audit.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/tradingcodex_service/application/brokers.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/tradingcodex_service/application/build_gateway.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/tradingcodex_service/application/calculations.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/tradingcodex_service/application/codex_capabilities.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/tradingcodex_service/application/common.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/tradingcodex_service/application/data_sources.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/tradingcodex_service/application/datasets.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/tradingcodex_service/application/decision_packages.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/tradingcodex_service/application/evaluation_lab.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/tradingcodex_service/application/execution_gateway.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/tradingcodex_service/application/forecasting.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/tradingcodex_service/application/git_subprocess.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/tradingcodex_service/application/harness.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/tradingcodex_service/application/health.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/tradingcodex_service/application/investment_analysis.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/tradingcodex_service/application/investment_brains.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/tradingcodex_service/application/investor_context.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/tradingcodex_service/application/knowledge_wikis.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/tradingcodex_service/application/managed_package_sources.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/tradingcodex_service/application/markdown_preview.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/tradingcodex_service/application/operator_authority.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/tradingcodex_service/application/orders.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/tradingcodex_service/application/policy.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/tradingcodex_service/application/portfolio.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/tradingcodex_service/application/postmortems.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/tradingcodex_service/application/research.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/tradingcodex_service/application/research_object_catalog.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/tradingcodex_service/application/research_objects.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/tradingcodex_service/application/research_specs.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/tradingcodex_service/application/runtime.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/tradingcodex_service/application/skill_invocations.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/tradingcodex_service/application/source_snapshots.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/tradingcodex_service/application/viewer.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/tradingcodex_service/application/wiki_viewer.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/tradingcodex_service/application/workspace_git.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/tradingcodex_service/application/workspaces.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/tradingcodex_service/asgi.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/tradingcodex_service/log_safety.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/tradingcodex_service/runtime_profile.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/tradingcodex_service/settings.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/tradingcodex_service/static/tradingcodex_admin/favicon.svg +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/tradingcodex_service/static/tradingcodex_web/assets/allPaths-DJ5oy6Ot.js +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/tradingcodex_service/static/tradingcodex_web/assets/allPathsLoader-CRlwLu1z.js +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/tradingcodex_service/static/tradingcodex_web/assets/index-c5e0ZsDr.js +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/tradingcodex_service/static/tradingcodex_web/assets/index-y2v9zCLQ.css +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/tradingcodex_service/static/tradingcodex_web/assets/paths-BDuITqPr.js +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/tradingcodex_service/static/tradingcodex_web/assets/paths-CoispWSv.js +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/tradingcodex_service/static/tradingcodex_web/assets/splitPathsBySizeLoader-x57jFwA3.js +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/tradingcodex_service/static/tradingcodex_web/index.html +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/tradingcodex_service/urls.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/tradingcodex_service/viewer_api.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/tradingcodex_service/web.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/tradingcodex_service/wsgi.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/workspace_templates/__init__.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/workspace_templates/modules/audit/files/.tradingcodex/audit/README.md +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/workspace_templates/modules/audit/files/trading/audit/.gitkeep +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/workspace_templates/modules/audit/module.json +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/workspace_templates/modules/codex-base/files/.codex/prompts/base_instructions/head-manager.md +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/workspace_templates/modules/codex-base/files/.codex/rules/tradingcodex.rules +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/workspace_templates/modules/codex-base/files/.tradingcodex/cli.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/workspace_templates/modules/codex-base/files/.tradingcodex/config.yaml +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/workspace_templates/modules/codex-base/files/pyproject.toml +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/workspace_templates/modules/codex-base/files/tcx +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/workspace_templates/modules/codex-base/files/tcx-calc +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/workspace_templates/modules/codex-base/files/tcx-calc.cmd +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/workspace_templates/modules/codex-base/files/tcx.cmd +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/workspace_templates/modules/codex-base/module.json +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/policies/restricted-list.yaml +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/approval_receipt.schema.json +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/audit_event.schema.json +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/evidence_pack.schema.json +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/execution_result.schema.json +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/fundamental_report.schema.json +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/news_report.schema.json +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/order_ticket.schema.json +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/portfolio_review.schema.json +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/postmortem_report.schema.json +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/research_artifact.schema.json +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/risk_report.schema.json +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/technical_report.schema.json +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/thesis.schema.json +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/valuation.schema.json +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/workspace_templates/modules/enforcement-guardrails/module.json +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/workspace_templates/modules/fixed-subagents/files/.codex/agents/fundamental-analyst.toml +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/workspace_templates/modules/fixed-subagents/files/.codex/agents/instrument-analyst.toml +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/workspace_templates/modules/fixed-subagents/files/.codex/agents/judgment-reviewer.toml +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/workspace_templates/modules/fixed-subagents/files/.codex/agents/macro-analyst.toml +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/workspace_templates/modules/fixed-subagents/files/.codex/agents/news-analyst.toml +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/workspace_templates/modules/fixed-subagents/files/.codex/agents/portfolio-manager.toml +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/workspace_templates/modules/fixed-subagents/files/.codex/agents/risk-manager.toml +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/workspace_templates/modules/fixed-subagents/files/.codex/agents/technical-analyst.toml +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/workspace_templates/modules/fixed-subagents/files/.codex/agents/valuation-analyst.toml +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/workspace_templates/modules/fixed-subagents/files/.tradingcodex/mainagent/skill-change-proposals/.gitkeep +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/workspace_templates/modules/fixed-subagents/module.json +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/workspace_templates/modules/guidance-guardrails/files/.tradingcodex/guidance/guardrails.md +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/workspace_templates/modules/guidance-guardrails/files/.tradingcodex/guidance/task-quality-checklist.md +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/workspace_templates/modules/guidance-guardrails/module.json +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/workspace_templates/modules/information-barriers/files/.tradingcodex/secrets.md +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/workspace_templates/modules/information-barriers/files/trading/forecasts/.gitkeep +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/workspace_templates/modules/information-barriers/files/trading/market-data/.gitkeep +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/workspace_templates/modules/information-barriers/files/trading/portfolio/.gitkeep +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/workspace_templates/modules/information-barriers/files/trading/reports/fundamental/.gitkeep +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/workspace_templates/modules/information-barriers/files/trading/reports/instrument/.gitkeep +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/workspace_templates/modules/information-barriers/files/trading/reports/macro/.gitkeep +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/workspace_templates/modules/information-barriers/files/trading/reports/news/.gitkeep +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/workspace_templates/modules/information-barriers/files/trading/reports/policy/.gitkeep +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/workspace_templates/modules/information-barriers/files/trading/reports/portfolio/.gitkeep +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/workspace_templates/modules/information-barriers/files/trading/reports/postmortem/.gitkeep +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/workspace_templates/modules/information-barriers/files/trading/reports/risk/.gitkeep +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/workspace_templates/modules/information-barriers/files/trading/reports/technical/.gitkeep +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/workspace_templates/modules/information-barriers/files/trading/reports/valuation/.gitkeep +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/workspace_templates/modules/information-barriers/files/trading/research/.gitkeep +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/workspace_templates/modules/information-barriers/module.json +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/workspace_templates/modules/paper-trading/module.json +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-automate/SKILL.md +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-automate/agents/openai.yaml +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-brain/SKILL.md +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-brain/agents/openai.yaml +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-brain/references/bundle-contract.md +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-build/SKILL.md +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-build/agents/openai.yaml +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-investor-context/agents/openai.yaml +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-memory/SKILL.md +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-memory/agents/openai.yaml +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-order-allow/SKILL.md +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-order-allow/agents/openai.yaml +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-order-cancel/SKILL.md +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-order-cancel/agents/openai.yaml +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-order-submit/SKILL.md +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-order-submit/agents/openai.yaml +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-plan/SKILL.md +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-plan/agents/openai.yaml +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-server/SKILL.md +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-server/agents/openai.yaml +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-strategy/SKILL.md +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-strategy/agents/openai.yaml +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-wiki/SKILL.md +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-wiki/agents/openai.yaml +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-wiki/references/bundle-contract.md +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-workflow/agents/openai.yaml +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/fundamental-analyst/tcx-fundamental/SKILL.md +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/fundamental-analyst/tcx-fundamental/agents/openai.yaml +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/instrument-analyst/tcx-instrument/SKILL.md +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/instrument-analyst/tcx-instrument/agents/openai.yaml +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/judgment-reviewer/tcx-judgment/SKILL.md +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/judgment-reviewer/tcx-judgment/agents/openai.yaml +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/macro-analyst/tcx-macro/SKILL.md +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/macro-analyst/tcx-macro/agents/openai.yaml +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/news-analyst/tcx-news/SKILL.md +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/news-analyst/tcx-news/agents/openai.yaml +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/portfolio-manager/tcx-order-draft/SKILL.md +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/portfolio-manager/tcx-order-draft/agents/openai.yaml +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/portfolio-manager/tcx-portfolio/SKILL.md +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/portfolio-manager/tcx-portfolio/agents/openai.yaml +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/risk-manager/tcx-order-approve/SKILL.md +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/risk-manager/tcx-order-approve/agents/openai.yaml +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/risk-manager/tcx-policy/SKILL.md +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/risk-manager/tcx-policy/agents/openai.yaml +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/risk-manager/tcx-risk/SKILL.md +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/risk-manager/tcx-risk/agents/openai.yaml +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/shared/tcx-anti-overfit/SKILL.md +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/shared/tcx-anti-overfit/agents/openai.yaml +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/shared/tcx-artifact/SKILL.md +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/shared/tcx-artifact/agents/openai.yaml +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/shared/tcx-calculation/SKILL.md +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/shared/tcx-calculation/agents/openai.yaml +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/shared/tcx-calculation/references/data-runtime.md +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/shared/tcx-calculation/references/finance-methods.md +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/shared/tcx-data-qc/agents/openai.yaml +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/shared/tcx-evidence/SKILL.md +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/shared/tcx-evidence/agents/openai.yaml +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/shared/tcx-forecast/SKILL.md +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/shared/tcx-forecast/agents/openai.yaml +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/shared/tcx-scenarios/SKILL.md +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/shared/tcx-scenarios/agents/openai.yaml +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/shared/tcx-source-gate/agents/openai.yaml +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/shared/tcx-source-gate/references/openbb-mcp.md +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/technical-analyst/tcx-technical/SKILL.md +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/technical-analyst/tcx-technical/agents/openai.yaml +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/valuation-analyst/tcx-valuation/SKILL.md +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/valuation-analyst/tcx-valuation/agents/openai.yaml +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/workspace_templates/modules/repo-skills/module.json +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/workspace_templates/modules/tradingcodex-mcp/files/.tradingcodex/mcp/enforcer/README.md +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/workspace_templates/modules/tradingcodex-mcp/files/.tradingcodex/mcp/gateway/README.md +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/workspace_templates/modules/tradingcodex-mcp/files/.tradingcodex/mcp/server.py +0 -0
- {tradingcodex-1.2.0 → tradingcodex-1.2.2}/workspace_templates/modules/tradingcodex-mcp/module.json +0 -0
|
@@ -2,6 +2,38 @@
|
|
|
2
2
|
|
|
3
3
|
## Unreleased
|
|
4
4
|
|
|
5
|
+
## 1.2.2 - 2026-07-22
|
|
6
|
+
|
|
7
|
+
- Validate Codex CLI 0.145.0 as the current reference while retaining 0.144.4
|
|
8
|
+
as the compatibility floor; adopt its stable MultiAgent V2 schema by leaving
|
|
9
|
+
nesting and concurrency to native Codex while preserving strict config,
|
|
10
|
+
permission, hook, MCP, and role-model projection checks.
|
|
11
|
+
- Restore the Head Manager's generated `export_dataset_csv` projection by
|
|
12
|
+
registering its canonical MCP schema, role boundary, and export capability,
|
|
13
|
+
with a generated-config-to-registry regression check.
|
|
14
|
+
- Stop automated GitHub Release notes at the next changelog heading so a
|
|
15
|
+
release contains only its matching version section.
|
|
16
|
+
|
|
17
|
+
## 1.2.1 - 2026-07-21
|
|
18
|
+
|
|
19
|
+
- Create or refresh the GitHub Release from the exact verified distributions
|
|
20
|
+
and matching changelog section only after protected PyPI publication succeeds.
|
|
21
|
+
- Run Python and frontend CI gates in parallel, verify releases on Apple Silicon
|
|
22
|
+
macOS, retain temporary distributions for seven days, remove the duplicate
|
|
23
|
+
Ubuntu wheel smoke, and reduce upgrade validation to the latest public
|
|
24
|
+
predecessor-to-candidate path.
|
|
25
|
+
|
|
26
|
+
- Let users author Investor Context directly with native Codex while retaining
|
|
27
|
+
lifecycle protection for enable, disable, and clear operations.
|
|
28
|
+
- Judge research evidence by the claim, intended use, and update cadence rather
|
|
29
|
+
than by an official-versus-available source label; preserve valid partial
|
|
30
|
+
fields and fetch only the missing decision-relevant coverage.
|
|
31
|
+
- Remove the generic analysis prompt-submit hook from ordinary requests while
|
|
32
|
+
retaining grant revocation and reserved safety actions.
|
|
33
|
+
- For short-horizon directional questions, resolve the relevant market session
|
|
34
|
+
and include market-wide or macro expertise when transmission could materially
|
|
35
|
+
change direction, range, or scenario weights without imposing a fixed roster.
|
|
36
|
+
|
|
5
37
|
## 1.2.0 - 2026-07-20
|
|
6
38
|
|
|
7
39
|
- Refresh the manual GitHub Pages workflow to the current Node 24 action
|
|
@@ -84,7 +84,8 @@ into every layer. If two layers disagree, fix the owning `docs/` page first.
|
|
|
84
84
|
|
|
85
85
|
- [Validation And Test Plan](validation-and-test-plan.md) — complete validation
|
|
86
86
|
matrix; use the smallest relevant subset during iteration.
|
|
87
|
-
- [Release Readiness](release-readiness.md) — release
|
|
87
|
+
- [Release Readiness](release-readiness.md) — reusable release and publication
|
|
88
|
+
checklist; live status remains in GitHub and PyPI.
|
|
88
89
|
- [Deployment](deployment.md) — packaging, publication, update, and CI policy.
|
|
89
90
|
- [Licensing And Commercialization](licensing-and-commercialization.md) — open
|
|
90
91
|
source, generated workspace, trademark, and legal-review boundaries.
|
|
@@ -81,7 +81,8 @@ conflicts with Strategy.
|
|
|
81
81
|
|
|
82
82
|
## Delegation Contract
|
|
83
83
|
|
|
84
|
-
MultiAgent V2 exposes the generated role profiles
|
|
84
|
+
MultiAgent V2 exposes the generated role profiles through native Codex
|
|
85
|
+
delegation.
|
|
85
86
|
Head Manager prefers an exact profile when its specialty is useful and passes a
|
|
86
87
|
compact role-owned brief rather than the full root history. Role TOML supplies
|
|
87
88
|
the direct fixed model settings; their values and fallback eligibility are owned
|
|
@@ -98,11 +99,15 @@ Use `followup_task` when a live child still owns a correction or clarification.
|
|
|
98
99
|
Start another child for a new specialty, an unavailable session, or independent
|
|
99
100
|
review. Apply the canonical fallback boundary in
|
|
100
101
|
[Roles, Skills, And Workflows](roles-skills-and-workflows.md). A child cannot
|
|
101
|
-
approve, execute, access a broker, or emulate Head Manager.
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
102
|
+
approve, execute, access a broker, or emulate Head Manager. Whether to delegate
|
|
103
|
+
a distinct child-owned subtask further is a native Codex decision, not a
|
|
104
|
+
TradingCodex workflow requirement. Every descendant remains subject to its
|
|
105
|
+
selected projected role and the shared evidence, authority, and safety
|
|
106
|
+
boundaries. Head Manager
|
|
107
|
+
waits only while a live child has useful work and reports lifecycle events only
|
|
108
|
+
from native tool and child-lifecycle results in the current run. Native wait is
|
|
109
|
+
wait-any and may serialize with no explicit target list; that representation is
|
|
110
|
+
not failure by itself.
|
|
106
111
|
|
|
107
112
|
When a Brain applies, the assignment contains the question Head Manager derived
|
|
108
113
|
from it, not the Brain body or a delegation of Brain authority. Brain content is
|
|
@@ -31,6 +31,23 @@ they are not the user capability in step 2. For structured prices, OHLCV,
|
|
|
31
31
|
fundamentals, estimates, or macro series, an available direct OpenBB route is
|
|
32
32
|
attempted before that fallback unless the user selected another provider.
|
|
33
33
|
|
|
34
|
+
Evidence is fit to a claim and intended use rather than accepted or rejected by
|
|
35
|
+
provider class. Original public records remain preferred when a claim requires
|
|
36
|
+
source-of-record authority, but attributable non-primary evidence may support
|
|
37
|
+
the fields and periods it actually covers. Missing or ambiguous coverage limits
|
|
38
|
+
only dependent claims and actions; it does not erase independent valid fields
|
|
39
|
+
or prevent factual and screen-grade research. This preserves the distinction
|
|
40
|
+
between evidence usability and decision or execution readiness without adding
|
|
41
|
+
a provider trust score, allowlist, or routing registry.
|
|
42
|
+
|
|
43
|
+
Freshness is relative to the requested as-of, the source's observation or
|
|
44
|
+
publication cadence, the relevant instrument or venue session, and the claim.
|
|
45
|
+
The latest completed period may be the current usable anchor before another
|
|
46
|
+
period exists. Offset-free provider timestamps remain explicitly ambiguous and
|
|
47
|
+
epoch values are converted once; neither is repaired by inventing a timezone.
|
|
48
|
+
A material missing slice that remains obtainable is fetched from the next
|
|
49
|
+
relevant source or returned to its live owner before an evidence-gap abstention.
|
|
50
|
+
|
|
34
51
|
The procedure adds point-in-time context only when structured or historical
|
|
35
52
|
evidence matters to a conclusion. It preserves issuer identity and
|
|
36
53
|
instrument/venue, unit/currency/timezone, raw-versus-adjusted price policy,
|
|
@@ -109,9 +109,9 @@ files are never replaced.
|
|
|
109
109
|
## Maintainer Prerequisites
|
|
110
110
|
|
|
111
111
|
Release verification uses Python 3.11 and Node 22 for the complete source and
|
|
112
|
-
frontend gates.
|
|
113
|
-
|
|
114
|
-
|
|
112
|
+
frontend gates. The release workflow then builds the candidate once, and the
|
|
113
|
+
calculation-runtime matrix reuses that exact wheel on x86-64 Linux, Apple
|
|
114
|
+
Silicon macOS, and native Windows under Python 3.11, 3.12, 3.13, and 3.14.
|
|
115
115
|
Each matrix job provisions the hash-locked runtime and exercises attach,
|
|
116
116
|
doctor, direct package imports, exploratory compatibility, prepared recording,
|
|
117
117
|
and exact reuse. Node remains a maintainer-only build dependency and is not
|
|
@@ -156,7 +156,7 @@ find . -maxdepth 1 -name '*.egg-info' -type d -exec rm -rf {} +
|
|
|
156
156
|
python3.11 -m build
|
|
157
157
|
python3.11 -m twine check dist/*
|
|
158
158
|
python3.11 tests/platform_wheel_smoke.py --wheel-dir dist
|
|
159
|
-
python3.11 tests/release_upgrade_smoke.py --wheel-dir dist
|
|
159
|
+
python3.11 tests/release_upgrade_smoke.py --wheel-dir dist
|
|
160
160
|
```
|
|
161
161
|
|
|
162
162
|
The wheel smoke installs only the built wheel into a clean virtual environment,
|
|
@@ -166,13 +166,13 @@ stdio, exercises the local service, and loads the packaged SPA and assets.
|
|
|
166
166
|
It also provisions the content-addressed calculation runtime, verifies its
|
|
167
167
|
manifest/lock/launcher hashes and exact imports, and exercises prepared and
|
|
168
168
|
exploratory `tcx-calc` modes without importing Django from the runner.
|
|
169
|
-
The release-upgrade smoke
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
169
|
+
The release-upgrade smoke reads the candidate version from the built wheel,
|
|
170
|
+
selects the latest preceding stable release published on PyPI, and verifies
|
|
171
|
+
that single predecessor-to-candidate path. It preserves workspace and runtime
|
|
172
|
+
identity, user-owned state, explicit home, DB, service-address settings, and
|
|
173
|
+
provider approval evidence alongside the refreshed generated contract. Older
|
|
174
|
+
release pairs are not replayed unless a separate migration contract explicitly
|
|
175
|
+
requires them.
|
|
176
176
|
|
|
177
177
|
Harness, role, prompt, skill, hook, policy, MCP, or generated-template changes
|
|
178
178
|
also require the disposable-workspace and Codex-native checks documented in
|
|
@@ -180,8 +180,8 @@ also require the disposable-workspace and Codex-native checks documented in
|
|
|
180
180
|
|
|
181
181
|
## CI And Release Automation
|
|
182
182
|
|
|
183
|
-
`.github/workflows/ci.yml` is test-only.
|
|
184
|
-
|
|
183
|
+
`.github/workflows/ci.yml` is test-only. Parallel Ubuntu jobs run the frontend
|
|
184
|
+
determinism check and the Python 3.11 source/framework gates. It does
|
|
185
185
|
not construct or upload a wheel or source distribution, run release-upgrade or
|
|
186
186
|
native-runtime matrices, or publish anything. Documentation-, guide-, OpenWiki-,
|
|
187
187
|
and asset-only pushes or pull requests skip this workflow. Source-bearing pull
|
|
@@ -198,16 +198,18 @@ requests and pushes still receive the normal source-quality checks.
|
|
|
198
198
|
- the tagged commit is on `origin/main`
|
|
199
199
|
- the wheel and source-distribution filenames carry the same version
|
|
200
200
|
- `dist/` contains exactly that one wheel and one source distribution
|
|
201
|
-
- the built wheel passes the
|
|
201
|
+
- the built wheel passes the prior-release update smoke and the platform matrix
|
|
202
202
|
- the protected `pypi` environment approves Trusted Publishing
|
|
203
203
|
|
|
204
204
|
The release workflow has one build/verification job followed by the required
|
|
205
|
-
Python 3.11-3.14 Linux,
|
|
205
|
+
Python 3.11-3.14 Linux, Apple-Silicon-macOS, and native-Windows calculation-runtime
|
|
206
206
|
matrix. When publication is requested, one protected PyPI job downloads that
|
|
207
|
-
exact artifact and uploads it
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
207
|
+
exact artifact and uploads it. After PyPI succeeds, a GitHub Release job
|
|
208
|
+
downloads the same artifact, uses the matching `CHANGELOG.md` section as its
|
|
209
|
+
notes, and creates or refreshes the tag's wheel and source-distribution assets.
|
|
210
|
+
No job rebuilds the distribution after verification. These distribution and
|
|
211
|
+
platform jobs run only after an explicit `Manual Release` dispatch, never
|
|
212
|
+
because a branch, tag, development commit, or documentation change was pushed.
|
|
211
213
|
|
|
212
214
|
## User Guide Pages
|
|
213
215
|
|
|
@@ -246,7 +248,8 @@ The guide for this repository is published at
|
|
|
246
248
|
5. In GitHub Actions, run `Manual Release` from that tag with the exact
|
|
247
249
|
`release_version`. Use `publish_pypi=true` for an approved publication; use
|
|
248
250
|
the optional `publish_pypi=false` rehearsal when release risk warrants an
|
|
249
|
-
additional hosted build.
|
|
251
|
+
additional hosted build. A successful approved publication also creates or
|
|
252
|
+
refreshes the matching GitHub Release from the verified artifacts.
|
|
250
253
|
|
|
251
254
|
Pushing a branch or tag does not publish by itself.
|
|
252
255
|
|
|
@@ -283,7 +286,7 @@ sh "$SOURCE_ROOT/install.sh" \
|
|
|
283
286
|
On native Windows PowerShell:
|
|
284
287
|
|
|
285
288
|
```powershell
|
|
286
|
-
$ReleaseVersion = "
|
|
289
|
+
$ReleaseVersion = "<released-version>"
|
|
287
290
|
$Workspace = Join-Path $env:TEMP "tcx-pypi-$ReleaseVersion"
|
|
288
291
|
New-Item -ItemType Directory -Force $Workspace | Out-Null
|
|
289
292
|
Set-Location $Workspace
|
|
@@ -130,10 +130,10 @@ paths, reserved namespaces, and managed block markers define the boundary:
|
|
|
130
130
|
| Class | Representative paths | Update contract |
|
|
131
131
|
| --- | --- | --- |
|
|
132
132
|
| Release-managed generated files | `AGENTS.md`, `pyproject.toml`, `tcx`, `tcx.cmd`, `.codex/config.toml`, `.codex/agents/*.toml`, `.codex/hooks/*`, `.agents/skills/tcx-*`, bundled `.tradingcodex/subagents/skills/**/tcx-*`, schemas, policies, launchers, generated indexes, and protocol-owned workspace identity/status files | Template and projection files are listed and hashed in the module lock. The lock cannot inventory itself; the immutable workspace manifest and rebuildable bootstrap/status files are separately protocol-owned. Update re-renders or re-projects these files from the current package and canonical state. Direct edits are unsupported and may be replaced. |
|
|
133
|
-
| User-selected managed overlays | `.tradingcodex/agent-instructions/*.md`, `.
|
|
133
|
+
| User-selected managed overlays | `.tradingcodex/agent-instructions/*.md`, `.agents/skills/strategy-*`, optional role skills, `investment-brains/*` authoring sources, `wiki-packages/*` shareable Wiki sources, `wikis/local`, and installed Brain/Wiki registries, packages, and projections | The owning lifecycle service validates managed state. Update preserves canonical state, user-owned Wiki/Brain sources, local Wiki pages, installed packages, registries, and active projections. |
|
|
134
134
|
| Workflow and research artifacts | `trading/research/`, `trading/reports/`, `trading/forecasts/`, `trading/decisions/`, `trading/evaluations/`, postmortems, lesson state, and per-run provenance | These are workspace state, not release payload. Update preserves them; template-owned `.gitkeep` files in the same directories do not transfer ownership of sibling artifacts. |
|
|
135
135
|
| Local/private runtime state | The external `TRADINGCODEX_HOME`, central DB, ignored session/status/cache/audit files, secrets, credentials, and private Investor Context | These remain outside versionable product state or inside the managed privacy-ignore block. Rebuildable status/cache files may be refreshed; durable authority never moves into the workspace. |
|
|
136
|
-
| Ordinary user files |
|
|
136
|
+
| Ordinary user files | `.tradingcodex/user/*` and any non-reserved path not listed in the generated-file inventory | Native workspace tools may update these files within the active permission profile. Update leaves them untouched. A file placed in another reserved managed namespace may be rejected as a collision rather than adopted or deleted. |
|
|
137
137
|
|
|
138
138
|
In particular, `.tradingcodex/config.yaml` is a generated control input despite
|
|
139
139
|
its name; use the documented customization and lifecycle surfaces instead of
|
|
@@ -289,9 +289,9 @@ Generated workspaces contain:
|
|
|
289
289
|
- no default ticker team: a broad company prompt does not expand to a fixed
|
|
290
290
|
analyst roster. Head Manager derives current questions, dispatches only roles
|
|
291
291
|
justified by them, and reassesses from authenticated evidence
|
|
292
|
-
- compact hook context contains session health or
|
|
293
|
-
Head Manager owns run creation, decision-quality,
|
|
294
|
-
and method choices
|
|
292
|
+
- compact hook context contains session health or explicit current-turn
|
|
293
|
+
authority context only; Head Manager owns run creation, decision-quality,
|
|
294
|
+
forecast, Investor Context, and method choices
|
|
295
295
|
- native role-profile delegation: generated config exposes the nine specialist
|
|
296
296
|
profiles through MultiAgent V2. Head Manager prefers the exact profile, uses
|
|
297
297
|
`followup_task` for owner corrections, and follows the canonical role and
|
|
@@ -534,7 +534,7 @@ That explicit overlay rule applies to external skill procedures, not to
|
|
|
534
534
|
read-only app, connector, MCP, or data tools used as evidence. A role whose
|
|
535
535
|
assignment needs external data or preserves a user-named provider first checks
|
|
536
536
|
the current task's callable tool surface and uses the runtime's available
|
|
537
|
-
deferred-tool discovery surface when needed. The Codex 0.
|
|
537
|
+
deferred-tool discovery surface when needed. The Codex 0.145.0 reference
|
|
538
538
|
contract first resolves at most 12 names with
|
|
539
539
|
`text(ALL_TOOLS.filter(x => x.name.includes("<provider-or-keyword>")).slice(0, 12).map(x => x.name))`.
|
|
540
540
|
One supported query may combine one to four literal `name.includes`
|
|
@@ -586,14 +586,22 @@ runs, hard-failure checks, blind review, and resolved outcomes.
|
|
|
586
586
|
Generated `.codex/config.toml` enables MultiAgent V2 with visible spawn
|
|
587
587
|
metadata and the `agents` tool namespace. It keeps every
|
|
588
588
|
`.codex/agents/*.toml` role discoverable while setting
|
|
589
|
-
`features.multi_agent_v2.enabled = true
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
589
|
+
`features.multi_agent_v2.enabled = true`. TradingCodex does not set
|
|
590
|
+
`agents.max_depth`, `agents.max_threads`, or
|
|
591
|
+
`agents.max_concurrent_threads_per_session`; Codex 0.145.0 ignores
|
|
592
|
+
`agents.max_depth` for V2, retains `agents.max_threads` as a compatibility
|
|
593
|
+
alias, and owns nesting, concurrency, and scheduling. Head Manager chooses
|
|
594
|
+
useful profiles and follows up with an owner when appropriate. Role eligibility
|
|
595
|
+
and fallback are defined in [Roles, Skills, And Workflows](roles-skills-and-workflows.md).
|
|
596
|
+
Whether to delegate distinct child-owned work further is a native Codex
|
|
597
|
+
decision, not a TradingCodex workflow requirement. Every descendant remains
|
|
598
|
+
subject to its selected projected role and TradingCodex safety and service
|
|
599
|
+
gates. Root model and reasoning settings are inherited, and direct fixed-role
|
|
600
|
+
TOML model settings are projected, but `doctor` does not duplicate native model
|
|
601
|
+
availability or lifecycle checks. Codex 0.145.0 exposes optional per-spawn model
|
|
602
|
+
and reasoning overrides by default; TradingCodex neither disables nor requires
|
|
603
|
+
them. A spawn without an explicit override follows native inheritance and role
|
|
604
|
+
config resolution.
|
|
597
605
|
|
|
598
606
|
Workspace template modules are deployment projections. Agent and skill
|
|
599
607
|
ownership comes from the Python agent registry and is projected
|
|
@@ -823,7 +831,10 @@ Inside a generated workspace, normal `head-manager` and fixed-role analysis
|
|
|
823
831
|
threads inherit the `trading-research` permission profile. They can use normal
|
|
824
832
|
shell, data tools, and credential-free public HTTP, read ordinary
|
|
825
833
|
workspace inputs, and write user-owned files outside `trading/`; disposable
|
|
826
|
-
intermediates belong under `$TRADINGCODEX_SCRATCH`.
|
|
834
|
+
intermediates belong under `$TRADINGCODEX_SCRATCH`. The exact
|
|
835
|
+
`.tradingcodex/user/` subtree is also user-owned and writable so confirmed
|
|
836
|
+
Investor Context can be managed with native file tools; the rest of
|
|
837
|
+
`.tradingcodex/` remains protected. Fixed-role Python
|
|
827
838
|
calculations use only the generated scratch-local `tcx-calc` contract. They
|
|
828
839
|
cannot modify
|
|
829
840
|
`trading/`, generated control files, or the TradingCodex home, DB, attached
|
|
@@ -865,10 +876,11 @@ Generated root config sets `default_permissions = "trading-research"` and
|
|
|
865
876
|
defines two custom profiles. It deliberately omits legacy `sandbox_mode` from
|
|
866
877
|
the root and every fixed-role TOML because any loaded `sandbox_mode` overrides
|
|
867
878
|
custom permission profiles in Codex. This contract requires Codex CLI 0.144.4
|
|
868
|
-
or later on a locally supported platform. Version 0.
|
|
879
|
+
or later on a locally supported platform. Version 0.145.0 is the current
|
|
869
880
|
release-validation reference for permission profiles, hooks, required MCP,
|
|
870
|
-
deferred MCP calls, and the explicit V2 feature table.
|
|
871
|
-
Codex runtime doctor check
|
|
881
|
+
deferred MCP calls, and the explicit V2 feature table. Versions below the
|
|
882
|
+
compatibility floor fail the Codex runtime doctor check; compatible non-reference
|
|
883
|
+
versions warn. These remain version-sensitive
|
|
872
884
|
surfaces, so release validation includes strict config/feature inspection and
|
|
873
885
|
a real native smoke.
|
|
874
886
|
See the [Codex permissions reference](https://learn.chatgpt.com/docs/permissions).
|
|
@@ -1357,10 +1369,10 @@ because hook policy is an agent-runtime boundary.
|
|
|
1357
1369
|
detector participates
|
|
1358
1370
|
- compact `SessionStart` health context with service status, viewer location,
|
|
1359
1371
|
and restart posture only
|
|
1360
|
-
-
|
|
1361
|
-
request directly, keeps narrow answers direct, calls
|
|
1362
|
-
only for a new workflow that needs durable provenance,
|
|
1363
|
-
task's run ID when continuing that workflow
|
|
1372
|
+
- ordinary `UserPromptSubmit` turns emit no analysis context. Head Manager
|
|
1373
|
+
interprets the request directly, keeps narrow answers direct, calls
|
|
1374
|
+
`begin_analysis_run` only for a new workflow that needs durable provenance,
|
|
1375
|
+
and reuses the current task's run ID when continuing that workflow
|
|
1364
1376
|
- audit records TradingCodex safety gates, grants, immediate execution, and
|
|
1365
1377
|
service failures. `PreToolUse` also records a sanitized external-tool
|
|
1366
1378
|
observation containing only the exact tool FQN, a secret-free canonical
|
|
@@ -1579,7 +1591,7 @@ Codex-native bootstrap verification:
|
|
|
1579
1591
|
workspace. The canonical workspace must
|
|
1580
1592
|
either be interactively trusted or receive the one-run `projects={...}` trust
|
|
1581
1593
|
override shown in `AGENTS.md`. A full fixed-role lifecycle smoke must use
|
|
1582
|
-
persisted trust for all five generated project hooks. Codex 0.
|
|
1594
|
+
persisted trust for all five generated project hooks. Codex 0.145.0 does not
|
|
1583
1595
|
carry the one-run `--dangerously-bypass-hook-trust` flag through the role
|
|
1584
1596
|
config reload used by an exact V2 child, so that flag may be used only for
|
|
1585
1597
|
root/config diagnostics and is not lifecycle acceptance. It also does not
|
|
@@ -76,7 +76,7 @@ source dumps. This is skill guidance, not a provider router or trust engine.
|
|
|
76
76
|
|
|
77
77
|
The generated hook is deliberately small. It owns:
|
|
78
78
|
|
|
79
|
-
- compact session health and
|
|
79
|
+
- compact session health and explicit current-turn authority context;
|
|
80
80
|
- exact parsing of reserved root action prompts;
|
|
81
81
|
- current-turn proof issue, reservation, and injection for Build, Brain,
|
|
82
82
|
Strategy, and final order service calls;
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
# Release Readiness
|
|
2
|
+
|
|
3
|
+
This is a reusable release checklist, not a live status page. GitHub Actions,
|
|
4
|
+
GitHub Releases, and PyPI own the current state of a particular release.
|
|
5
|
+
|
|
6
|
+
## Candidate Contract
|
|
7
|
+
|
|
8
|
+
- `tradingcodex_service/version.py` is the only package-version source.
|
|
9
|
+
- `CHANGELOG.md` contains a matching dated release section.
|
|
10
|
+
- The release tag is the annotated `v<version>` tag on a commit in `main`.
|
|
11
|
+
- One build produces exactly one wheel and one source distribution. Every
|
|
12
|
+
later job downloads those files instead of rebuilding them.
|
|
13
|
+
|
|
14
|
+
## Required Gates
|
|
15
|
+
|
|
16
|
+
| Area | Evidence required |
|
|
17
|
+
| --- | --- |
|
|
18
|
+
| Source and schema | Full Python suite, Django check, migration dry-run, compileall, and whitespace review pass. |
|
|
19
|
+
| Frontend | Locked tests and build pass; committed static assets are deterministic. |
|
|
20
|
+
| Generated workspace | A disposable development workspace passes doctor, service, launcher, MCP, and affected projection checks. |
|
|
21
|
+
| Native Codex | Prompt, role, skill, hook, or orchestration changes pass the observed acceptance route in the validation plan. |
|
|
22
|
+
| Distribution | Wheel and source distribution pass metadata checks and the clean-wheel smoke. |
|
|
23
|
+
| Platform runtime | The exact wheel passes Python 3.11-3.14 on supported Linux, Apple Silicon macOS, and native Windows runners. |
|
|
24
|
+
| Upgrade | The latest preceding stable PyPI release updates to the candidate while preserving user and service identity. |
|
|
25
|
+
| Publication | Protected PyPI publishing succeeds before the matching GitHub Release is created or refreshed. |
|
|
26
|
+
| Post-publish | A pinned PyPI install passes fresh attach, doctor, metadata, and update checks. |
|
|
27
|
+
|
|
28
|
+
Use the smallest applicable gates while iterating. Run the complete release
|
|
29
|
+
set only for a candidate that is ready to publish.
|
|
30
|
+
|
|
31
|
+
## Upgrade Gate
|
|
32
|
+
|
|
33
|
+
The default and only routine cross-version check is:
|
|
34
|
+
|
|
35
|
+
```text
|
|
36
|
+
latest preceding public release -> candidate release
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
`tests/release_upgrade_smoke.py` reads the candidate version from the built
|
|
40
|
+
wheel and selects the greatest stable PyPI version below it. It does not replay
|
|
41
|
+
every historical release pair. A major-version migration or an explicitly
|
|
42
|
+
supported older direct-upgrade path requires its own documented gate.
|
|
43
|
+
|
|
44
|
+
```bash
|
|
45
|
+
python3.11 tests/release_upgrade_smoke.py --wheel-dir dist
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
The smoke verifies preserved workspace identity, paper scope, workspace-native
|
|
49
|
+
artifacts, user-owned Brains and Strategies, connector state, runtime home,
|
|
50
|
+
database override, service address, and provider approval evidence.
|
|
51
|
+
|
|
52
|
+
## Publish
|
|
53
|
+
|
|
54
|
+
After the candidate gates pass:
|
|
55
|
+
|
|
56
|
+
1. Merge the release commit to `main` and wait for CI.
|
|
57
|
+
2. Create and push the annotated `v<version>` tag.
|
|
58
|
+
3. In GitHub Actions, dispatch `Manual Release` from that tag with
|
|
59
|
+
`release_version=$RELEASE_VERSION` and `publish_pypi=true`.
|
|
60
|
+
4. Approve the protected `pypi` environment.
|
|
61
|
+
5. Verify the exact PyPI files and GitHub Release, then run the post-publish
|
|
62
|
+
checks from [Deployment](deployment.md).
|
|
63
|
+
|
|
64
|
+
Pushing a branch or tag alone does not publish anything.
|
|
65
|
+
|
|
66
|
+
## Claim Boundary
|
|
67
|
+
|
|
68
|
+
Software release readiness does not establish investment performance, return
|
|
69
|
+
improvement, model superiority, or financial safety. Those claims require
|
|
70
|
+
separate evidence and review.
|
|
@@ -14,7 +14,7 @@ orchestration, handoffs, overlays, and execution separation.
|
|
|
14
14
|
| Fixed-role base prompt | shared child safety, evidence/handoff invariants, compact artifact reads, and gap handling | provider procedure, specialist identity, cross-role scheduling |
|
|
15
15
|
| Fixed-role TOML | concise specialist identity, unique boundary, web posture, tools, and MCP principal | shared evidence procedure, cross-role scheduling, or model policy |
|
|
16
16
|
| Role skills | domain procedure and output quality | role identity or authority |
|
|
17
|
-
| Hooks | compact session health and
|
|
17
|
+
| Hooks | compact session health and current-turn authority context, reserved action parsing, proof injection, and TradingCodex-owned safety-gate audit | natural-language routing, run/session ownership, child lifecycle, role selection, generic shell/network policy, or lane/team/DAG selection |
|
|
18
18
|
| Django services/MCP | run provenance, principal/tool checks, artifact lineage, policy/order/approval/broker/execution/audit state; one protected turn-grant consumer plus no raw final mutation | investment research orchestration or model-granted execution authority |
|
|
19
19
|
|
|
20
20
|
The current Codex authoring contract follows the official
|
|
@@ -143,9 +143,14 @@ readiness limits. It does not impose sentence tags or a template on narrow
|
|
|
143
143
|
answers or intermediate role work.
|
|
144
144
|
|
|
145
145
|
Broad analysis is not a fixed template. A factual company profile may need one
|
|
146
|
-
fundamental role.
|
|
147
|
-
|
|
148
|
-
|
|
146
|
+
fundamental role. For a horizon-sensitive directional forecast, Head Manager
|
|
147
|
+
first resolves the relevant market session and separates instrument-specific
|
|
148
|
+
from market-wide drivers. At one market session or less, market-wide regime or
|
|
149
|
+
cross-asset transmission is presumed material unless the request isolates an
|
|
150
|
+
idiosyncratic event; `macro-analyst` owns that question when it could change
|
|
151
|
+
direction, range, or scenario weights. This is a causal-coverage rule, not a
|
|
152
|
+
fixed macro/technical/news roster. A recommendation or portfolio/risk decision
|
|
153
|
+
usually needs independent judgment. Evidence can change the next role.
|
|
149
154
|
|
|
150
155
|
The shared workflow treats inside-out economics, outside-in peers and base
|
|
151
156
|
rates, upstream/downstream value-chain position, time and expectations, and
|
|
@@ -221,8 +226,11 @@ Start a fresh child for a new specialty, an unavailable session, or independent
|
|
|
221
226
|
review. The Dynamic Workflow fallback boundary applies here. A generic child
|
|
222
227
|
retains the same research-only scope, evidence standard, no-secret boundary,
|
|
223
228
|
and no-order boundary; it cannot approve, execute, access a broker, or act as
|
|
224
|
-
Head Manager.
|
|
225
|
-
|
|
229
|
+
Head Manager. Whether to delegate a distinct child-owned subtask further is a
|
|
230
|
+
native Codex decision, not a workflow requirement. Each descendant remains
|
|
231
|
+
subject to its selected projected role and the shared evidence, authority, and
|
|
232
|
+
safety boundaries. Wait only while a live child has useful work.
|
|
233
|
+
Native
|
|
226
234
|
wait-any may serialize without explicit targets; verify lifecycle through the
|
|
227
235
|
native tool result and child session events rather than treating that as failure.
|
|
228
236
|
|
|
@@ -255,7 +263,7 @@ same contract error repeats.
|
|
|
255
263
|
The same bounded rule applies across role MCP use: a documented terminal
|
|
256
264
|
outcome such as stored, updated, existing, reused, or prepared ends that call;
|
|
257
265
|
an unchanged deterministic failure is never blindly resubmitted. Under the
|
|
258
|
-
Codex 0.
|
|
266
|
+
Codex 0.145.0 deferred-tool contract, unknown-provider resolution starts with
|
|
259
267
|
the canonical names-only query
|
|
260
268
|
`text(ALL_TOOLS.filter(x => x.name.includes("<provider-or-keyword>")).slice(0, 12).map(x => x.name))`.
|
|
261
269
|
One names-only query may combine at most four literal `name.includes`
|
|
@@ -137,7 +137,7 @@ Control-plane maintainability depends on clear ownership:
|
|
|
137
137
|
and the three native execution protocol bundles;
|
|
138
138
|
`.tradingcodex/subagents/skills/*` owns role procedures and output shape.
|
|
139
139
|
Skill files do not own durable role eligibility or MCP authority.
|
|
140
|
-
- `.codex/hooks/*` owns compact session health and
|
|
140
|
+
- `.codex/hooks/*` owns compact session health and current-turn authority context, exact
|
|
141
141
|
explicit extension syntax reporting, safety-gate audit, and deterministic interception of
|
|
142
142
|
the three root-native execution skills plus normalized first-meaningful-line
|
|
143
143
|
`$tcx-build`, `$tcx-brain`, `$tcx-wiki`, and `$tcx-strategy` contracts. It does not classify natural language, select roles,
|
|
@@ -44,7 +44,7 @@ is not a Head Manager entrypoint.
|
|
|
44
44
|
| --- | --- | --- |
|
|
45
45
|
| `tcx-plan` | Clarify scope, constraints, action boundaries, and stop conditions before an immediate or recurring task. | Compact user mandate and missing-field or blocked posture; never a server dispatch plan or selected team. |
|
|
46
46
|
| `tcx-automate` | Create or update Codex app Scheduled Tasks for simple research, monitoring, recurring analysis, portfolio/status review, order drafting, assisted execution, optional turn-authorized execution, or explicitly delegated turn-authorized Build work. | Schedule plus a durable runtime prompt that invokes the actual work skill, not `tcx-automate` recursively. |
|
|
47
|
-
| `tcx-investor-context` | Interview and
|
|
47
|
+
| `tcx-investor-context` | Interview and manage workspace suitability context as an ordinary user-owned file. | Confirmed saved values, default application state, and remaining gaps. |
|
|
48
48
|
|
|
49
49
|
## Entrypoint Rules
|
|
50
50
|
|
|
@@ -107,11 +107,10 @@ answer ends with one concise `Wiki used:` line containing only the
|
|
|
107
107
|
workspace-relative paths of pages actually used. Current facts that support an
|
|
108
108
|
investment conclusion still require normal Source Gate verification.
|
|
109
109
|
|
|
110
|
-
`tcx-investor-context` interviews
|
|
111
|
-
workspace-local suitability file
|
|
112
|
-
|
|
113
|
-
terminal
|
|
114
|
-
Build shell gate. Its persistent enable/disable state is separate from skill availability,
|
|
110
|
+
`tcx-investor-context` reads, interviews for, previews, and updates the optional
|
|
111
|
+
workspace-local suitability file with native workspace file tools after user
|
|
112
|
+
confirmation. This ordinary user-owned file does not require a Build turn, MCP
|
|
113
|
+
service, or terminal handoff. Its persistent enable/disable state is separate from skill availability,
|
|
115
114
|
strategy rules, and internal paper account scope. It does not run investment
|
|
116
115
|
analysis or grant authority. Native run binding follows the saved workspace default;
|
|
117
116
|
the read-only viewer offers no one-run override and never rewrites the file.
|
|
@@ -266,8 +266,9 @@ Smoke coverage should verify:
|
|
|
266
266
|
Manager and role-owned live research for the six evidence producers without
|
|
267
267
|
treating a host finance skill as a dependency
|
|
268
268
|
- generated `.codex/config.toml` explicitly enables MultiAgent V2, reports it
|
|
269
|
-
enabled through `codex features list`, leaves concurrency to
|
|
270
|
-
|
|
269
|
+
enabled through `codex features list`, leaves nesting and concurrency to
|
|
270
|
+
Codex, and omits TradingCodex-owned `agents.max_depth`,
|
|
271
|
+
`agents.max_threads`, and `agents.max_concurrent_threads_per_session`
|
|
271
272
|
- skill/projection manifests identify the finite managed inventory, declare
|
|
272
273
|
runtime discovery incomplete, and resolve exact root/role skill paths
|
|
273
274
|
- two generated workspaces have different workspace ids
|
|
@@ -293,21 +294,22 @@ flags and fixed read-only Codex inventory subprocess handling.
|
|
|
293
294
|
|
|
294
295
|
Calculation runtime release coverage must additionally resolve the complete
|
|
295
296
|
hash-locked wheel set for Python 3.11, 3.12, 3.13, and 3.14 on supported
|
|
296
|
-
macOS, Linux, and native Windows x86-64 targets. Every
|
|
297
|
-
runtime manifest, launcher hash, exact package imports, one
|
|
298
|
-
and one exploratory compatibility run. Missing wheels must
|
|
299
|
-
workspace mutation; validation must never permit a source
|
|
297
|
+
Apple Silicon macOS, Linux x86-64, and native Windows x86-64 targets. Every
|
|
298
|
+
target verifies the runtime manifest, launcher hash, exact package imports, one
|
|
299
|
+
prepared envelope, and one exploratory compatibility run. Missing wheels must
|
|
300
|
+
fail attach before workspace mutation; validation must never permit a source
|
|
301
|
+
build as fallback.
|
|
300
302
|
|
|
301
303
|
After building a wheel, run:
|
|
302
304
|
|
|
303
305
|
```bash
|
|
304
306
|
python tests/platform_wheel_smoke.py --wheel-dir dist
|
|
305
|
-
python tests/release_upgrade_smoke.py --wheel-dir dist
|
|
307
|
+
python tests/release_upgrade_smoke.py --wheel-dir dist
|
|
306
308
|
```
|
|
307
309
|
|
|
308
310
|
GitHub Actions keeps the complete Python/Django suite on Ubuntu/Python 3.11 and
|
|
309
311
|
then runs that same clean-wheel helper for Python 3.11-3.14 on x86-64 Linux,
|
|
310
|
-
|
|
312
|
+
Apple Silicon macOS, and native Windows. Release publication depends on the full matrix.
|
|
311
313
|
The helper uses
|
|
312
314
|
`tempfile`, a space-containing wheel path and workspace, parses root plus all
|
|
313
315
|
role TOML and generated YAML/JSON, runs `tcx` on POSIX or `tcx.cmd` on Windows,
|
|
@@ -645,7 +647,7 @@ Scenarios should include:
|
|
|
645
647
|
- explicit investor-context updates persist to the workspace Markdown file;
|
|
646
648
|
enable/disable changes the default, native run binding follows that default,
|
|
647
649
|
while the viewer offers no one-run override
|
|
648
|
-
- Codex `UserPromptSubmit` generated hooks
|
|
650
|
+
- Codex `UserPromptSubmit` generated hooks emit no context for ordinary prompts
|
|
649
651
|
and never classify meaning, choose roles, or create a run; `begin_analysis_run` seals enabled
|
|
650
652
|
workspace Investor Context and an exact explicitly invoked `$strategy-*`
|
|
651
653
|
before Head Manager dispatches any role
|
|
@@ -815,7 +817,7 @@ stop without an order, approval, execution, cancellation, broker mutation, or
|
|
|
815
817
|
secret action. Record an unavailable Codex/auth blocker rather than replacing this with a
|
|
816
818
|
claim based only on the fake subprocess test.
|
|
817
819
|
|
|
818
|
-
Reference acceptance uses Codex CLI 0.
|
|
820
|
+
Reference acceptance uses Codex CLI 0.145.0. Run
|
|
819
821
|
`python tests/codex_cli_contract.py --workspace <workspace>
|
|
820
822
|
--require-reference --require-hook-trust` first, after opening the disposable
|
|
821
823
|
workspace in interactive Codex and persistently trusting all five generated
|
|
@@ -825,7 +827,7 @@ configuration, readable sandbox settings, the expected enabled/disabled
|
|
|
825
827
|
feature states, and trusted lifecycle hooks. Native `codex exec` smokes must
|
|
826
828
|
also pass `--strict-config`, so a newly unknown or removed project key fails
|
|
827
829
|
before model behavior is accepted. Do not use `--ignore-user-config` or
|
|
828
|
-
`--dangerously-bypass-hook-trust` for lifecycle acceptance: in 0.
|
|
830
|
+
`--dangerously-bypass-hook-trust` for lifecycle acceptance: in 0.145.0 the
|
|
829
831
|
one-run bypass is not inherited when a V2 child reloads an exact role config.
|
|
830
832
|
On platforms where a temporary directory has a symlinked alias, resolve the
|
|
831
833
|
workspace once with `realpath` or `Path.resolve()` and use that same physical
|
|
@@ -838,10 +840,13 @@ Run native CLI smokes that inspect observable tool calls and child lifecycle
|
|
|
838
840
|
results from Codex. Cover the direct fast path, one exact profile, a same-owner
|
|
839
841
|
`followup_task`, and a bounded evidence-role generic fallback when a profile is
|
|
840
842
|
unavailable. Briefs must stay compact, generated TOML must retain the fixed
|
|
841
|
-
model settings and the project-wide `trading-research` profile
|
|
842
|
-
|
|
843
|
-
|
|
844
|
-
|
|
843
|
+
model settings and the project-wide `trading-research` profile. When native
|
|
844
|
+
Codex delegates a child-owned subtask further, inspect the descendant lifecycle
|
|
845
|
+
and verify that its effective role, model, permission profile, MCP principal,
|
|
846
|
+
evidence boundary, and no-order boundary match the selected role. A missing independent risk or judgment
|
|
847
|
+
profile must remain explicit rather than becoming a generic review. Run a
|
|
848
|
+
sequential two-child smoke plus one artifact-to-synthesis workflow because
|
|
849
|
+
lifecycle failures may appear only after the first child exits.
|
|
845
850
|
|
|
846
851
|
For a full research smoke, inspect root and child JSONL as observable behavior,
|
|
847
852
|
not private chain of thought. Require a compact bounded child brief; reject broad
|
|
@@ -923,7 +928,10 @@ Also install the built wheel in a clean environment and run:
|
|
|
923
928
|
|
|
924
929
|
```bash
|
|
925
930
|
python tests/platform_wheel_smoke.py --wheel-dir dist
|
|
926
|
-
python tests/release_upgrade_smoke.py --wheel-dir dist
|
|
931
|
+
python tests/release_upgrade_smoke.py --wheel-dir dist
|
|
927
932
|
```
|
|
928
933
|
|
|
934
|
+
The upgrade smoke selects only the latest stable PyPI release preceding the
|
|
935
|
+
candidate version. Historical release pairs are not replayed by default.
|
|
936
|
+
|
|
929
937
|
Detailed release workflow lives in [deployment.md](./deployment.md).
|