- ID: M3
- Name: Productization Pass (CLI + CI + Distribution)
- Status: In Progress
- Target Version: v0.7.0
- Last Updated: 2026-03-01
- Summary: Risk-first refactor execution is complete, explicit CI checks for
swift build,swift test,TTMCliTests, andTTMApiTestsare now configured, and beta releasev0.7.0-beta.1is published for soak.
| ID | Name | Target Version | Status | Target Date | Notes |
|---|---|---|---|---|---|
| M1 | Core Runtime + Server Foundation | v0.4.0 | Completed | 2026-02-24 | Embedded CPython runtime, Qwen-backed service runtime, server endpoints, OpenAPI wiring, and broad integration test scaffolding are in place. |
| M2 | Runtime Staging Reliability Hardening | v0.5.0 | Completed | 2026-03-06 | Resolved staging-script regressions and stabilized Python env isolation for restage/sox behavior in full test runs. |
| M3 | Productization Pass (CLI + CI + Distribution) | v0.7.0 | In Progress | 2026-03-27 | ttm-cli is implemented and now has dedicated tests. Current focus is modular decomposition, config centralization, CI enforcement, and beta soak. |
| Ticket | Title | Status | Notes |
|---|---|---|---|
| TKT-00 | Baseline Guardrails and Scope Lock | Completed | Baseline contract captured in docs/refactor-plan.md. |
| TKT-01 | Docs and Naming Parity Hardening | Completed | README naming and command parity aligned to package products. |
| TKT-02 | Dedicated CLI Test Target | Completed | Added TTMCliTests target with parsing/build/transport behavior coverage. |
| TKT-03 | CLI Internal Modularization | Completed | CLI split into focused files with shared synthesis request builder and seams. |
| TKT-04 | Server API Handler Decomposition | Completed | TTMApi split into endpoint-family extensions plus shared core helpers. |
| TKT-05 | Python Bridge Decomposition | Completed | Bridge actor, type model, and CPython runtime internals separated into focused files. |
| TKT-06 | Typed Configuration Consolidation | Completed | Typed server/runtime env parsing added with focused tests and env compatibility retained. |
| TKT-07 | Repository Hygiene for Large Local Runtime Artifacts | Completed | Added search hygiene documentation and scripts/search_repo.sh. |
| TKT-08 | Roadmap and Milestone Reconciliation | Completed | Milestone/ticket status reconciled in roadmap. |
- CI must run
swift build, fullswift test,TTMCliTests, andTTMApiTestson pull requests andmainpushes. - Release tag must follow
vx.x.xformat and be pushed before creating the GitHub release object. - Release object for
v0.7.0should be created as prerelease/beta while integration soak continues.
- Scope:
- Reconcile staging script behavior with integration test expectations for
--restageand--restage-runtime. - Ensure package cleanup and static-sox detection behavior are explicit, deterministic, and covered by tests.
- Keep existing service/server/model APIs stable while improving staging reliability.
- Reconcile staging script behavior with integration test expectations for
- Acceptance Criteria:
swift buildsucceeds without functional regressions.swift testpasses forRuntime staging script (integration)suite, including:--restage resets all categories while still rebuilding runtimefails fast when runtime restage requires static-sox but staged packages are missing it
- README and roadmap remain aligned with actual runtime staging behavior.
- Risks/Dependencies:
- Staging behavior depends on environment toolchain (
python3.11,uv, and package layout) and can vary across host setups. - Some integration suites are intentionally opt-in and may hide regressions when env flags/prereqs are absent.
- Staging behavior depends on environment toolchain (
- Scope:
- Investigate and harden
Bridge integrates ...model-backed integration tests after repeated native crashes inswiftpm-testing-helper. - Keep default
swift teststable while preserving an explicit path to run heavy bundled-model coverage. - Add deterministic cleanup in integration helpers so bridge teardown is always attempted even after model/synthesis failures.
- Investigate and harden
- Current Findings:
TTM_RUN_BUNDLED_MODEL_INTEGRATION=1withbridgeIntegratesCustomVoice17BIfAvailablecan fail in Python runtime withRuntimeError: Tensor.item() cannot be called on meta tensors.bridgeIntegratesVoiceDesign17BIfAvailableandbridgeIntegratesCustomVoice17BIfAvailablecan also terminate the process withSIGSEGV (11)during model load/import ondevice_map=autoinswiftpm-testing-helper.- Crash stacks consistently point at CPython/Torch native paths (
PyEval_AcquireThread,pybind11::gil_scoped_acquire) on queueTalkToMeKit.TTMPythonBridge.CPython. - This appears to be an upstream/native runtime hazard, not a Swift Testing assertion/configuration issue.
- Next Steps:
- Keep bundled-model bridge integration tests explicitly opt-in.
- Keep bundled integration assertions strict (exact model,
strictload, fallback disabled) so failures are not masked. - Run bundled bridge integration tests on deterministic
cpu/float32for now to avoid known 1.7B auto/MPS crash paths. - Keep using isolated execution (
scripts/bridge_integrates_isolated.sh) for heavy native integration coverage.
- Scope:
- Ensure
ttm-clibehavior and payloads remain fully compliant with the server API surface. - Add a dedicated
ttm-clitest suite covering command parsing, request/response handling, and error mapping.
- Ensure
- Acceptance Criteria:
ttm-clicommand options and API calls are validated against current server endpoints and request schemas. ✅swift testincludes dedicated CLI tests (not only service/server tests). ✅- CLI tests cover success paths and at least key failure modes (invalid args, non-2xx responses, malformed payloads). ✅
- Scope:
- Evaluate migration from ad-hoc environment/config parsing to a unified
swift-configuration-based approach. - Introduce typed configuration surfaces for server, runtime bridge, and CLI paths where environment variables are currently interpreted directly.
- Evaluate migration from ad-hoc environment/config parsing to a unified
- Acceptance Criteria:
- Configuration defaults and required keys are centralized and documented in one place. ✅
- Environment-derived settings used by server/runtime/tests are validated through typed configuration objects. ✅
- Core configuration paths have focused unit tests (including invalid/partial configuration cases). ✅
- 2026-02-25: Initialized roadmap at repository root as canonical planning record.
- 2026-02-25: Set active milestone to M2 based on current test status (2 staging integration failures) and build health.
- 2026-02-25: Cleared M2 test gate after hardening
stage_python_runtime.shto run Python staging steps with sanitizedPYTHONHOME/PYTHONPATH; fullswift testnow passes. - 2026-02-25: Added bundled-model integration stability follow-up notes after reproducing CustomVoice 1.7B meta-tensor failure and post-failure
SIGSEGV (11)inswiftpm-testing-helper. - 2026-02-25: Hardened bundled bridge integration tests to enforce strict non-fallback model loads and deterministic
cpu/float32backend; isolated bridge integration script now passes all three bridge integration cases. - 2026-02-26: Added roadmap follow-up items for
ttm-cliAPI compliance validation and dedicated CLI test-suite coverage. - 2026-02-26: Added roadmap follow-up to evaluate and adopt
swift-configurationfor centralized typed configuration management. - 2026-02-28: Executed ticketed refactor plan (
TKT-00toTKT-08) including CLI/server/bridge decomposition, docs parity hardening, typed env config parsing, and dedicated CLI tests. - 2026-03-01: Added GitHub Actions CI workflow with explicit
swift build,swift test,TTMCliTests, andTTMApiTestschecks; queuedv0.6.0beta tagging/release. - 2026-03-01: Published prerelease object
v0.7.0-beta.1from tagv0.7.0.