Skip to content

v0.13.3 fix: stabilize execution and release boundaries - #14

Merged
minglong51 merged 4 commits into
mainfrom
fix/v0.13.3-stabilization
Aug 20, 2026
Merged

v0.13.3 fix: stabilize execution and release boundaries#14
minglong51 merged 4 commits into
mainfrom
fix/v0.13.3-stabilization

Conversation

@minglong51

@minglong51 minglong51 commented Aug 20, 2026

Copy link
Copy Markdown
Owner

Summary

Execution and operator boundaries

  • Fail closed when a requested real provider is unavailable; provider-free workflows and completed durable replays remain truly lazy.
  • Restore copyable durable recovery commands for retryable provider failures, preserve backend/endpoint/limit/IR settings, and close SQLite handles on every CLI/probe path.
  • Validate CLI, server, and support-triage arguments before provider or server setup, including non-finite timeouts, worker/port bounds, malformed URLs, filesystem/SQLite failures, and malformed HTTP input.
  • Harden compatible-provider trust boundaries: scope credentials, require HTTPS except proxy-bypassed loopback, refuse redirects and credential-bearing URLs, redact upstream errors, cap responses at 8 MiB, validate Unicode/text shapes, and reject malformed tool calls before execution.
  • Ensure durable completion-persistence failures transition runs to failed, and make readiness database failures return structured HTTP 503 responses.
  • Fix the release-report dry-run path so its deterministic first tool succeeds instead of folding a calculator error into a nominally successful report.

v0.13.3 release preparation

  • Align package, runtime, README, HLD, and LLD versions at 0.13.3 and correct the PyPI installation guidance.
  • Refresh the live architecture/production contracts for canonical IR identity, admission controls, provider security, and the supported single-node boundary.
  • Gate publishing on tests and quality checks, exact v<project version>/runtime/project equality, isolated artifact construction, Twine validation, and clean-wheel entrypoint smoke before PyPI OIDC publication.

Test Coverage

Conservative path audit: 42/49 paths covered (86%) before the final blocker regressions were added. Test count: 177 → 243 (+66); test files: 17 → 19 (+2).

CLI/durability        provider fail-closed, lazy replay, recovery hints, cleanup  [tested]
Provider boundary     key scope, redirects, size/Unicode/tool-call validation     [tested]
HTTP control plane    Host/origin/target/JSON admission, readiness DB failures    [tested]
Support triage        validation and formatted operator failures                   [tested]
Release               version equality, package data, wheel and entrypoints        [tested]
Remaining             tagged publish handoff and selected integration combinations [E2E]

Pre-Landing Review

The adversarial review initially stopped ship on malformed tool arguments crossing the execution boundary, unbounded provider bodies, readiness connection drops, and invalid provider output stranding durable runs. All findings were fixed with regressions; the final independent re-review found no remaining confidence ≥7 correctness, security, or release blocker.

Design Review

No frontend files changed — design review skipped.

Eval Results

No prompt-evaluation framework or prompt behavior change was in scope — evals skipped. The release-report and support-triage vertical slices were dogfooded under deterministic dry-run execution.

Scope Drift

Scope Check: CLEAN. The diff is limited to stabilization fixes, focused regression coverage, synchronized contracts, and v0.13.3 release preparation. Speculative roadmap expansion is excluded.

Plan Completion

6/6 planned items completed:

  • Recover repository history, roadmap, and current state.
  • Baseline tests, packaging, static checks, and primary user paths.
  • Reproduce and trace historical and current defects.
  • Apply a narrow stabilization patch with regression coverage.
  • Verify supported Python versions and a clean built wheel.
  • Compare the roadmap with current alternatives and recommend a narrow continuation strategy.

Verification Results

  • Python 3.11: 243 passed.
  • Python 3.12: 243 passed.
  • Python 3.13: 243 passed.
  • Ruff check/format, mypy, Bandit, pip-audit, design-doc drift/audit, workflow YAML parsing, and diff checks passed.
  • Fresh 0.13.3 sdist/wheel passed Twine; archives exclude uv.lock; the wheel contains py.typed and the bundled support-triage workflow.
  • A clean wheel install ran all three entrypoints, hello.thread, and a durable support-triage dry run from outside the checkout.
  • Local Docker was unavailable; the existing GitHub Actions container job remains the container gate.

Documentation

  • docs/benchmarks/dsl-comparison.md: updated the current semantics matrix and durability conclusion from v0.12 to v0.13.
  • README.md: made the durable library example close its RunStore on every path.
  • docs/spec.md: synchronized syntax, IR execution, routing/agent/contracts behavior, client capabilities, CLI flags, and at-least-once semantics with the shipped v0.13 runtime.
  • docs/design/HLD.md and docs/design/LLD.md: completed the phase history and documented the baseline, agent, and optional route client protocols.
  • docs/production.md: tightened crash/checkpoint and provider-security claims to the actual supported boundary.
  • RELEASING.md: added the fail-fast maintainer handoff from a clean Python 3.12 verification environment through draft release, protected-environment approval, PyPI publication, and clean install verification.
  • Verification: design-doc tests pass 5/5, every tracked module is documented, and no architecture-diagram drift was found.
  • Historical design/plan snapshots and generated cache documentation were excluded from rewriting.

Known release-blocking documentation gaps: none.

Test plan

  • Full suite passes on Python 3.11, 3.12, and 3.13.
  • Static, security, dependency, architecture-contract, and packaging gates pass.
  • Clean built-wheel and bundled-package-data smoke passes.
  • Adversarial blocker re-review passes.

@minglong51
minglong51 merged commit 5d9d0e4 into main Aug 20, 2026
5 checks passed
@minglong51
minglong51 deleted the fix/v0.13.3-stabilization branch August 20, 2026 04:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant