apiwells 0.2.0__tar.gz → 0.2.1__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.
Files changed (77) hide show
  1. {apiwells-0.2.0 → apiwells-0.2.1}/CHANGELOG.md +18 -4
  2. {apiwells-0.2.0/src/apiwells.egg-info → apiwells-0.2.1}/PKG-INFO +13 -16
  3. {apiwells-0.2.0 → apiwells-0.2.1}/README.md +10 -15
  4. {apiwells-0.2.0 → apiwells-0.2.1}/docs/COMPATIBILITY.md +7 -0
  5. apiwells-0.2.1/docs/RELEASE_CHECKLIST.md +106 -0
  6. {apiwells-0.2.0 → apiwells-0.2.1}/docs/TEST_PLAN.md +46 -26
  7. {apiwells-0.2.0 → apiwells-0.2.1}/docs/V0.2_SPEC.md +10 -12
  8. {apiwells-0.2.0 → apiwells-0.2.1}/pyproject.toml +5 -1
  9. {apiwells-0.2.0 → apiwells-0.2.1}/src/apiwells/__init__.py +1 -1
  10. {apiwells-0.2.0 → apiwells-0.2.1/src/apiwells.egg-info}/PKG-INFO +13 -16
  11. apiwells-0.2.0/docs/RELEASE_CHECKLIST.md +0 -79
  12. {apiwells-0.2.0 → apiwells-0.2.1}/LICENSE +0 -0
  13. {apiwells-0.2.0 → apiwells-0.2.1}/MANIFEST.in +0 -0
  14. {apiwells-0.2.0 → apiwells-0.2.1}/docs/compatibility/compatibility-matrix.md +0 -0
  15. {apiwells-0.2.0 → apiwells-0.2.1}/docs/compatibility/model0001-deepseek-flash.md +0 -0
  16. {apiwells-0.2.0 → apiwells-0.2.1}/docs/compatibility/model0002-alibaba-qwen37-plus.md +0 -0
  17. {apiwells-0.2.0 → apiwells-0.2.1}/docs/compatibility/model0003-openrouter-ling30-flash-fin.md +0 -0
  18. {apiwells-0.2.0 → apiwells-0.2.1}/docs/releases/0.1.0/VALIDATION.md +0 -0
  19. {apiwells-0.2.0 → apiwells-0.2.1}/setup.cfg +0 -0
  20. {apiwells-0.2.0 → apiwells-0.2.1}/src/apiwells/__main__.py +0 -0
  21. {apiwells-0.2.0 → apiwells-0.2.1}/src/apiwells/cli.py +0 -0
  22. {apiwells-0.2.0 → apiwells-0.2.1}/src/apiwells/config.py +0 -0
  23. {apiwells-0.2.0 → apiwells-0.2.1}/src/apiwells/models/__init__.py +0 -0
  24. {apiwells-0.2.0 → apiwells-0.2.1}/src/apiwells/models/errors.py +0 -0
  25. {apiwells-0.2.0 → apiwells-0.2.1}/src/apiwells/models/result.py +0 -0
  26. {apiwells-0.2.0 → apiwells-0.2.1}/src/apiwells/probes/__init__.py +0 -0
  27. {apiwells-0.2.0 → apiwells-0.2.1}/src/apiwells/probes/chat.py +0 -0
  28. {apiwells-0.2.0 → apiwells-0.2.1}/src/apiwells/probes/connectivity.py +0 -0
  29. {apiwells-0.2.0 → apiwells-0.2.1}/src/apiwells/probes/models.py +0 -0
  30. {apiwells-0.2.0 → apiwells-0.2.1}/src/apiwells/probes/streaming.py +0 -0
  31. {apiwells-0.2.0 → apiwells-0.2.1}/src/apiwells/probes/structured.py +0 -0
  32. {apiwells-0.2.0 → apiwells-0.2.1}/src/apiwells/probes/tools.py +0 -0
  33. {apiwells-0.2.0 → apiwells-0.2.1}/src/apiwells/probes/usage.py +0 -0
  34. {apiwells-0.2.0 → apiwells-0.2.1}/src/apiwells/reporting/__init__.py +0 -0
  35. {apiwells-0.2.0 → apiwells-0.2.1}/src/apiwells/reporting/aggregation.py +0 -0
  36. {apiwells-0.2.0 → apiwells-0.2.1}/src/apiwells/reporting/console.py +0 -0
  37. {apiwells-0.2.0 → apiwells-0.2.1}/src/apiwells/reporting/json_report.py +0 -0
  38. {apiwells-0.2.0 → apiwells-0.2.1}/src/apiwells/reporting/redaction.py +0 -0
  39. {apiwells-0.2.0 → apiwells-0.2.1}/src/apiwells/runner.py +0 -0
  40. {apiwells-0.2.0 → apiwells-0.2.1}/src/apiwells/transport.py +0 -0
  41. {apiwells-0.2.0 → apiwells-0.2.1}/src/apiwells.egg-info/SOURCES.txt +0 -0
  42. {apiwells-0.2.0 → apiwells-0.2.1}/src/apiwells.egg-info/dependency_links.txt +0 -0
  43. {apiwells-0.2.0 → apiwells-0.2.1}/src/apiwells.egg-info/entry_points.txt +0 -0
  44. {apiwells-0.2.0 → apiwells-0.2.1}/src/apiwells.egg-info/requires.txt +0 -0
  45. {apiwells-0.2.0 → apiwells-0.2.1}/src/apiwells.egg-info/top_level.txt +0 -0
  46. {apiwells-0.2.0 → apiwells-0.2.1}/tests/integration/mock_server/__init__.py +0 -0
  47. {apiwells-0.2.0 → apiwells-0.2.1}/tests/integration/mock_server/responses.py +0 -0
  48. {apiwells-0.2.0 → apiwells-0.2.1}/tests/integration/mock_server/scenarios.py +0 -0
  49. {apiwells-0.2.0 → apiwells-0.2.1}/tests/integration/mock_server/server.py +0 -0
  50. {apiwells-0.2.0 → apiwells-0.2.1}/tests/integration/test_basic_full_flow.py +0 -0
  51. {apiwells-0.2.0 → apiwells-0.2.1}/tests/integration/test_cli_matrix.py +0 -0
  52. {apiwells-0.2.0 → apiwells-0.2.1}/tests/integration/test_deep_full_flow.py +0 -0
  53. {apiwells-0.2.0 → apiwells-0.2.1}/tests/integration/test_mock_gap_closure.py +0 -0
  54. {apiwells-0.2.0 → apiwells-0.2.1}/tests/integration/test_mock_server.py +0 -0
  55. {apiwells-0.2.0 → apiwells-0.2.1}/tests/integration/test_reporter_contract.py +0 -0
  56. {apiwells-0.2.0 → apiwells-0.2.1}/tests/integration/test_secret_safety_full_flow.py +0 -0
  57. {apiwells-0.2.0 → apiwells-0.2.1}/tests/test_basic_runner.py +0 -0
  58. {apiwells-0.2.0 → apiwells-0.2.1}/tests/test_chat_probe.py +0 -0
  59. {apiwells-0.2.0 → apiwells-0.2.1}/tests/test_cli_reporting.py +0 -0
  60. {apiwells-0.2.0 → apiwells-0.2.1}/tests/test_config.py +0 -0
  61. {apiwells-0.2.0 → apiwells-0.2.1}/tests/test_connectivity_probe.py +0 -0
  62. {apiwells-0.2.0 → apiwells-0.2.1}/tests/test_console_reporter.py +0 -0
  63. {apiwells-0.2.0 → apiwells-0.2.1}/tests/test_deep_runner.py +0 -0
  64. {apiwells-0.2.0 → apiwells-0.2.1}/tests/test_doctor.py +0 -0
  65. {apiwells-0.2.0 → apiwells-0.2.1}/tests/test_errors.py +0 -0
  66. {apiwells-0.2.0 → apiwells-0.2.1}/tests/test_json_reporter.py +0 -0
  67. {apiwells-0.2.0 → apiwells-0.2.1}/tests/test_models_probe.py +0 -0
  68. {apiwells-0.2.0 → apiwells-0.2.1}/tests/test_redaction.py +0 -0
  69. {apiwells-0.2.0 → apiwells-0.2.1}/tests/test_reporting_aggregation.py +0 -0
  70. {apiwells-0.2.0 → apiwells-0.2.1}/tests/test_result.py +0 -0
  71. {apiwells-0.2.0 → apiwells-0.2.1}/tests/test_runner.py +0 -0
  72. {apiwells-0.2.0 → apiwells-0.2.1}/tests/test_secret_leak.py +0 -0
  73. {apiwells-0.2.0 → apiwells-0.2.1}/tests/test_streaming_probe.py +0 -0
  74. {apiwells-0.2.0 → apiwells-0.2.1}/tests/test_structured_probe.py +0 -0
  75. {apiwells-0.2.0 → apiwells-0.2.1}/tests/test_tool_probe.py +0 -0
  76. {apiwells-0.2.0 → apiwells-0.2.1}/tests/test_transport.py +0 -0
  77. {apiwells-0.2.0 → apiwells-0.2.1}/tests/test_usage.py +0 -0
@@ -1,9 +1,19 @@
1
1
  # Changelog
2
2
 
3
- ## Unreleased — v0.2 development
3
+ ## Unreleased
4
4
 
5
- The package and CLI remain at 0.1.0 (v0.2 development build); v0.2.0 has not
6
- been released.
5
+ No unreleased changes are recorded yet.
6
+
7
+ ## 0.2.1 — 2026-09-28
8
+
9
+ - Correct the PyPI-facing README and package metadata.
10
+ - Make the README and v0.2 specification patch-version-neutral.
11
+ - Add verified repository and issue project URLs.
12
+ - Replace repository-relative README documentation links with PyPI-safe
13
+ absolute GitHub links.
14
+ - No runtime diagnostic behavior changes.
15
+
16
+ ## 0.2.0 — 2026-09-28
7
17
 
8
18
  - Add Basic connectivity/authentication/models diagnostics and explicit-model
9
19
  Deep capability diagnostics while retaining legacy `--chat` behavior.
@@ -20,7 +30,11 @@ been released.
20
30
  - Validate local wheel/sdist packaging and Windows clean installation, including
21
31
  Basic and critical Deep smoke checks and 43 clean-wheel integration tests.
22
32
  - Document Local-First/no-telemetry behavior, security boundaries, test coverage
23
- and remaining release gates.
33
+ and completed release validation.
34
+ - Complete RC/TestPyPI acceptance and cross-platform CI on Ubuntu, Windows and
35
+ macOS; publish to production PyPI and verify artifact identity, clean
36
+ installation, CLI/JSON contracts, real-provider Basic smoke, secret safety
37
+ and the five-minute onboarding target.
24
38
 
25
39
  ## 0.1.0
26
40
  - Add a single-request models endpoint check and opt-in text chat smoke check.
@@ -1,8 +1,10 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: apiwells
3
- Version: 0.2.0
3
+ Version: 0.2.1
4
4
  Summary: Endpoint Doctor for OpenAI-compatible model APIs
5
5
  License-Expression: MIT
6
+ Project-URL: Repository, https://github.com/apiwells/endpoint-doctor
7
+ Project-URL: Issues, https://github.com/apiwells/endpoint-doctor/issues
6
8
  Keywords: api,diagnostics,llm,endpoint
7
9
  Classifier: Development Status :: 3 - Alpha
8
10
  Classifier: Environment :: Console
@@ -22,21 +24,18 @@ A Local-First CLI for diagnosing OpenAI-compatible model API endpoints from
22
24
  your machine. Endpoint Doctor checks connectivity and protocol capabilities;
23
25
  it does not score model quality. Python 3.10+ is required.
24
26
 
25
- This checkout is a **v0.2 development build**. The installed package and CLI
26
- version remain **0.1.0**; v0.2.0 has not been released. Runtime dependencies
27
- include `jsonschema` for Structured Output validation.
27
+ Runtime dependencies include `jsonschema` for Structured Output validation.
28
28
 
29
29
  ## Install
30
30
 
31
- Install the current released package from PyPI:
31
+ Install the latest release from PyPI:
32
32
 
33
33
  ```sh
34
- python -m pip install apiwells
34
+ python -m pip install --upgrade apiwells
35
35
  apiwells --version
36
36
  ```
37
37
 
38
- The current repository contains v0.2 development work but remains at version
39
- 0.1.0 until RC version synchronization. v0.2.0 has not been released to PyPI.
38
+ `apiwells --version` reports the installed package version.
40
39
 
41
40
  Install this local checkout with:
42
41
 
@@ -44,8 +43,6 @@ Install this local checkout with:
44
43
  python -m pip install .
45
44
  ```
46
45
 
47
- The checkout's version command currently prints `apiwells 0.1.0`.
48
-
49
46
  ## Basic Doctor
50
47
 
51
48
  Set `APIWELLS_API_KEY` using your shell's secret-input mechanism. Do not put a
@@ -172,26 +169,26 @@ streaming TTFT.
172
169
  - Test only endpoints you are authorized to test. Private/local destinations are
173
170
  intentionally allowed; this CLI is not an unrestricted server-side URL fetcher.
174
171
 
175
- See [Security](SECURITY.md) for handling and reporting guidance.
172
+ See [Security](https://github.com/apiwells/endpoint-doctor/blob/main/SECURITY.md) for handling and reporting guidance.
176
173
 
177
174
  ## Compatibility and development
178
175
 
179
- [Compatibility](docs/COMPATIBILITY.md) indexes three point-in-time ED-031 live
176
+ [Compatibility](https://github.com/apiwells/endpoint-doctor/blob/main/docs/COMPATIBILITY.md) indexes three point-in-time ED-031 live
180
177
  certification records. These establish observed endpoint behavior, not
181
178
  universal provider support or model quality.
182
179
 
183
- [The release-facing specification](docs/V0.2_SPEC.md) summarizes the frozen
180
+ [The release-facing specification](https://github.com/apiwells/endpoint-doctor/blob/main/docs/V0.2_SPEC.md) summarizes the frozen
184
181
  v0.2 scope. Benchmark, scoring/ranking, recommendations, cost optimization,
185
182
  Router, Gateway, long-term Monitoring, Web Dashboard, SaaS accounts, cloud
186
183
  telemetry and complete Responses API coverage are outside that scope.
187
184
 
188
185
  For test coverage and the observed QA harness dependencies, see
189
- [the test plan](docs/TEST_PLAN.md). With the test harness installed, run:
186
+ [the test plan](https://github.com/apiwells/endpoint-doctor/blob/main/docs/TEST_PLAN.md). With the test harness installed, run:
190
187
 
191
188
  ```sh
192
189
  python -m pytest tests -q
193
190
  ```
194
191
 
195
- See [the release checklist](docs/RELEASE_CHECKLIST.md) for completed evidence
196
- and pending release gates, and [the changelog](CHANGELOG.md) for changes.
192
+ See [the release checklist](https://github.com/apiwells/endpoint-doctor/blob/main/docs/RELEASE_CHECKLIST.md) for release evidence,
193
+ and [the changelog](https://github.com/apiwells/endpoint-doctor/blob/main/CHANGELOG.md) for version history and changes.
197
194
  License: MIT.
@@ -4,21 +4,18 @@ A Local-First CLI for diagnosing OpenAI-compatible model API endpoints from
4
4
  your machine. Endpoint Doctor checks connectivity and protocol capabilities;
5
5
  it does not score model quality. Python 3.10+ is required.
6
6
 
7
- This checkout is a **v0.2 development build**. The installed package and CLI
8
- version remain **0.1.0**; v0.2.0 has not been released. Runtime dependencies
9
- include `jsonschema` for Structured Output validation.
7
+ Runtime dependencies include `jsonschema` for Structured Output validation.
10
8
 
11
9
  ## Install
12
10
 
13
- Install the current released package from PyPI:
11
+ Install the latest release from PyPI:
14
12
 
15
13
  ```sh
16
- python -m pip install apiwells
14
+ python -m pip install --upgrade apiwells
17
15
  apiwells --version
18
16
  ```
19
17
 
20
- The current repository contains v0.2 development work but remains at version
21
- 0.1.0 until RC version synchronization. v0.2.0 has not been released to PyPI.
18
+ `apiwells --version` reports the installed package version.
22
19
 
23
20
  Install this local checkout with:
24
21
 
@@ -26,8 +23,6 @@ Install this local checkout with:
26
23
  python -m pip install .
27
24
  ```
28
25
 
29
- The checkout's version command currently prints `apiwells 0.1.0`.
30
-
31
26
  ## Basic Doctor
32
27
 
33
28
  Set `APIWELLS_API_KEY` using your shell's secret-input mechanism. Do not put a
@@ -154,26 +149,26 @@ streaming TTFT.
154
149
  - Test only endpoints you are authorized to test. Private/local destinations are
155
150
  intentionally allowed; this CLI is not an unrestricted server-side URL fetcher.
156
151
 
157
- See [Security](SECURITY.md) for handling and reporting guidance.
152
+ See [Security](https://github.com/apiwells/endpoint-doctor/blob/main/SECURITY.md) for handling and reporting guidance.
158
153
 
159
154
  ## Compatibility and development
160
155
 
161
- [Compatibility](docs/COMPATIBILITY.md) indexes three point-in-time ED-031 live
156
+ [Compatibility](https://github.com/apiwells/endpoint-doctor/blob/main/docs/COMPATIBILITY.md) indexes three point-in-time ED-031 live
162
157
  certification records. These establish observed endpoint behavior, not
163
158
  universal provider support or model quality.
164
159
 
165
- [The release-facing specification](docs/V0.2_SPEC.md) summarizes the frozen
160
+ [The release-facing specification](https://github.com/apiwells/endpoint-doctor/blob/main/docs/V0.2_SPEC.md) summarizes the frozen
166
161
  v0.2 scope. Benchmark, scoring/ranking, recommendations, cost optimization,
167
162
  Router, Gateway, long-term Monitoring, Web Dashboard, SaaS accounts, cloud
168
163
  telemetry and complete Responses API coverage are outside that scope.
169
164
 
170
165
  For test coverage and the observed QA harness dependencies, see
171
- [the test plan](docs/TEST_PLAN.md). With the test harness installed, run:
166
+ [the test plan](https://github.com/apiwells/endpoint-doctor/blob/main/docs/TEST_PLAN.md). With the test harness installed, run:
172
167
 
173
168
  ```sh
174
169
  python -m pytest tests -q
175
170
  ```
176
171
 
177
- See [the release checklist](docs/RELEASE_CHECKLIST.md) for completed evidence
178
- and pending release gates, and [the changelog](CHANGELOG.md) for changes.
172
+ See [the release checklist](https://github.com/apiwells/endpoint-doctor/blob/main/docs/RELEASE_CHECKLIST.md) for release evidence,
173
+ and [the changelog](https://github.com/apiwells/endpoint-doctor/blob/main/CHANGELOG.md) for version history and changes.
179
174
  License: MIT.
@@ -1,5 +1,12 @@
1
1
  # v0.2 Compatibility
2
2
 
3
+ The ED-031 compatibility records below were captured before the package version
4
+ was synchronized to 0.2.0. Their recorded package/build versions are preserved
5
+ as historical point-in-time evidence and must not be rewritten to match the
6
+ later final release version. Endpoint Doctor v0.2.0 was subsequently released
7
+ on **2026-09-28**. Production Basic smoke and cross-platform CI do not replace
8
+ these historical capability observations.
9
+
3
10
  ED-031 real endpoint/provider live validation is **CLOSED / PASS**. This page is
4
11
  a release-facing index; the historical
5
12
  [compatibility matrix](compatibility/compatibility-matrix.md) and individual
@@ -0,0 +1,106 @@
1
+ # v0.2.0 Release Checklist
2
+
3
+ Release date: **2026-09-28**
4
+
5
+ Release status: **CLOSED / PASS**
6
+
7
+ Release source: `cac558b543336f42d17b8db99bfacd6e53d1e5dd`
8
+
9
+ Release tag: `v0.2.0` (annotated)
10
+
11
+ Production package: `apiwells==0.2.0`
12
+
13
+ Public release-facing specification: [V0.2_SPEC.md](V0.2_SPEC.md).
14
+
15
+ This completed release record reflects the acceptance evidence established
16
+ during ED-034, ED-035 and the post-release production acceptance. ED-036 only
17
+ reconciles the repository documentation with those already-confirmed results;
18
+ it does not represent a new build, publication or execution of acceptance tests.
19
+
20
+ ## Canonical final artifacts
21
+
22
+ | Artifact | Filename |
23
+ |---|---|
24
+ | Wheel | `apiwells-0.2.0-py3-none-any.whl` |
25
+ | sdist | `apiwells-0.2.0.tar.gz` |
26
+
27
+ Wheel SHA256:
28
+
29
+ ```text
30
+ AC346E77ADA9B376420BD9F3B83FDA1CAB2CFD89F80598A5937162F1EDF03168
31
+ ```
32
+
33
+ sdist SHA256:
34
+
35
+ ```text
36
+ CBD4D357E2DE397951B35D499A12AC89C3002F34E614634A1BFF12ECE35C32A3
37
+ ```
38
+
39
+ These identify the canonical final release artifacts. The release source,
40
+ annotated tag and published artifacts are unchanged by this documentation pass.
41
+
42
+ ## Completed release checklist
43
+
44
+ - [x] Frozen scope validation.
45
+ - [x] Package and CLI version synchronized to **0.2.0**.
46
+ - [x] Unit tests.
47
+ - [x] Mock integration tests.
48
+ - [x] Secret leak validation.
49
+ - [x] ED-031 real-provider compatibility evidence: **CLOSED / PASS**.
50
+ - [x] ED-033 release documentation reviewed and accepted.
51
+ - [x] ED-034 Windows formal RC acceptance.
52
+ - [x] Wheel build.
53
+ - [x] sdist build.
54
+ - [x] `twine check`.
55
+ - [x] TestPyPI publication.
56
+ - [x] TestPyPI artifact identity.
57
+ - [x] TestPyPI clean install.
58
+ - [x] TestPyPI Basic smoke.
59
+ - [x] Cross-platform CI — Ubuntu: **PASS**.
60
+ - [x] Cross-platform CI — Windows: **PASS**.
61
+ - [x] Cross-platform CI — macOS: **PASS**.
62
+ - [x] Annotated `v0.2.0` tag created and pushed.
63
+ - [x] ED-035 production PyPI publication.
64
+ - [x] Production PyPI artifact identity.
65
+ - [x] Fresh production PyPI clean install.
66
+ - [x] `apiwells --version`: **PASS**, reports `apiwells 0.2.0`.
67
+ - [x] `apiwells --help`: **PASS**.
68
+ - [x] `apiwells doctor --help`: **PASS**.
69
+ - [x] `pip check`: **PASS**.
70
+ - [x] Production real-provider Basic smoke: **PASS**.
71
+ - [x] v2 JSON contract: **PASS**.
72
+ - [x] Secret not present in stdout/stderr.
73
+ - [x] Temporary API key removed after testing.
74
+ - [x] ≤5 minute onboarding target: **PASS**.
75
+ - [x] Final release: **CLOSED / PASS**.
76
+
77
+ ## Evidence boundaries
78
+
79
+ Cross-platform CI PASS is not macOS/Linux real-provider live-validation PASS.
80
+ The production Basic smoke establishes the recorded Basic checks, not every
81
+ Deep capability on every provider. The release record makes no claim that
82
+ every Python version was tested or every provider capability passed.
83
+
84
+ ED-031 compatibility results remain point-in-time evidence for their original
85
+ endpoint, model, build and test date. Later production smoke and CI results
86
+ do not replace those observations.
87
+
88
+ ## Historical evidence preserved
89
+
90
+ - **ED-031 — CLOSED / PASS:** the [compatibility index](COMPATIBILITY.md) links
91
+ the authoritative matrix and MODEL-0001, MODEL-0002 and MODEL-0003 records.
92
+ Their original build versions, dates, metrics and PASS/PARTIAL results remain
93
+ unchanged.
94
+ - **ED-032 — CLOSED / PASS:** local wheel + sdist build PASS, Windows Basic
95
+ real-endpoint smoke PASS, clean-wheel integration **43 passed**, critical
96
+ Deep smoke PASS and no secret leak observed. These are historical Windows
97
+ acceptance results, separate from ED-034 RC and production PyPI acceptance.
98
+ - **TESTENV-01:** the observed ED-032 Windows harness used pytest **9.1.1**,
99
+ pytest-httpserver **1.1.5** and Werkzeug **3.1.8**. These are test dependencies,
100
+ not ApiWells runtime dependencies. See [TEST_PLAN.md](TEST_PLAN.md).
101
+ - [0.1.0 validation](releases/0.1.0/VALIDATION.md) remains historical evidence for
102
+ that release; it is not relabeled as v0.2.0 acceptance.
103
+
104
+ VERSION-01 was completed by synchronizing both version declarations to 0.2.0
105
+ before the formal release. No version bump or version-source refactor is part
106
+ of ED-036. ED-031 and ED-032 remain closed.
@@ -1,10 +1,11 @@
1
1
  # v0.2 Test Plan
2
2
 
3
- This plan covers the frozen Endpoint Doctor v0.2 scope summarized in
4
- [V0.2_SPEC.md](V0.2_SPEC.md). It describes required validation, not a claim that
5
- every release gate has passed. See [the release checklist](RELEASE_CHECKLIST.md)
6
- for evidence status. ED-031 and ED-032 remain closed; ED-033 does not rerun or
7
- reopen them.
3
+ This plan describes validation methods and historical release evidence for the
4
+ frozen Endpoint Doctor v0.2.0 scope in [V0.2_SPEC.md](V0.2_SPEC.md). The final
5
+ release was completed on **2026-09-28**, with status **CLOSED / PASS**. See
6
+ [the release checklist](RELEASE_CHECKLIST.md) for the completed acceptance
7
+ record. ED-031 and ED-032 remain closed; this documentation reconciliation
8
+ does not rerun or reopen them.
8
9
 
9
10
  ## 1. Unit testing
10
11
 
@@ -86,8 +87,8 @@ sanitized command/results evidence.
86
87
  ED-032 Windows clean-install testing is **CLOSED / PASS**. The supplied ED-032
87
88
  acceptance evidence records local wheel + sdist build PASS, Windows Basic real
88
89
  endpoint smoke PASS, clean-wheel integration **43 passed**, critical Deep smoke
89
- PASS and no secret leak observed. These are prior observations, not new ED-033
90
- test runs.
90
+ PASS and no secret leak observed. These remain historical ED-032 observations,
91
+ separate from the subsequent formal RC and production-install acceptance.
91
92
 
92
93
  ### TESTENV-01: observed Windows QA harness
93
94
 
@@ -99,22 +100,25 @@ test runs.
99
100
 
100
101
  These are **test dependencies, not ApiWells runtime dependencies**. They describe
101
102
  the observed Windows clean-wheel integration environment, not a new supported
102
- dependency matrix. ED-033 neither adds them to runtime dependencies nor chooses
103
- a new dev-dependency packaging or management mechanism.
103
+ dependency matrix. This record does not add them to runtime dependencies or
104
+ choose a new dev-dependency packaging or management mechanism.
104
105
 
105
106
  ## 6. Cross-platform testing
106
107
 
107
- Validate the release candidate on Windows, macOS and Linux, including shell
108
- entry points, environment-key handling, TLS/proxy behavior, JSON encoding and
109
- exit codes. macOS and Linux each require installation, `--version`, `--help`,
110
- Basic smoke and the mock suite. Each platform run records OS, Python version
111
- and the tested artifact. Python must satisfy the declared `>=3.10` requirement.
112
- The Frozen Scope requires the specified Windows/macOS/Linux validation, not an
113
- exhaustive OS × Python-version matrix.
114
-
115
- Windows development-build acceptance is supported by ED-032. Remaining required
116
- platform validation and RC acceptance stay open until corresponding evidence
117
- exists. Historical 0.1.0 validation does not certify a v0.2 RC.
108
+ The cross-platform validation method covers Windows, macOS and Linux,
109
+ including shell entry points, environment-key handling, TLS/proxy behavior,
110
+ JSON encoding and exit codes. macOS and Linux checks include installation,
111
+ `--version`, `--help`, Basic smoke and the mock suite. Record whether a smoke
112
+ test uses a local mock or a real provider. Each platform run records OS, Python
113
+ version and the tested artifact. Python must satisfy the declared `>=3.10`
114
+ requirement. The Frozen Scope requires the specified Windows/macOS/Linux
115
+ validation, not an exhaustive OS × Python-version matrix.
116
+
117
+ Ubuntu, Windows and macOS CI completed with **PASS**. Windows formal RC
118
+ acceptance also completed with **PASS**, separately from historical ED-032
119
+ acceptance. Cross-platform CI PASS does not establish macOS/Linux real-provider
120
+ live validation. The production real-provider Basic smoke is separate evidence
121
+ and does not replace ED-031 capability measurements.
118
122
 
119
123
  ## 7. Release evidence
120
124
 
@@ -123,10 +127,26 @@ provide credentials through environment variables or managed CI secrets.
123
127
  Keep unit/mock/secret-test summaries, sanitized compatibility records,
124
128
  build/metadata checks, artifact hashes and clean-install/platform results tied
125
129
  to the tested commit and artifact. Record failures and limitations as well as
126
- passes. Before formal RC/final artifacts, synchronize both version declarations
127
- to 0.2.0; they remain 0.1.0 in ED-033 (VERSION-01). A single version source is
128
- not decided here.
130
+ passes. Both package version declarations were synchronized to **0.2.0** for
131
+ the formal release. This documentation pass changes neither version declaration
132
+ nor the version-source design.
133
+
134
+ The following completed evidence was established during the v0.2.0 release
135
+ process and post-release production acceptance. ED-036 records that existing
136
+ evidence here; these are not new test runs performed by this documentation pass:
129
137
 
130
- TestPyPI, RC artifact/clean-install acceptance, remaining required validation,
131
- final PyPI release and post-release PyPI clean-install smoke are future gates,
132
- tracked in [RELEASE_CHECKLIST.md](RELEASE_CHECKLIST.md).
138
+ | Stage | Completed evidence |
139
+ |---|---|
140
+ | ED-031 | Point-in-time real-endpoint capability certification; original build versions, dates and PASS/PARTIAL outcomes preserved |
141
+ | ED-032 | Windows clean-wheel acceptance, including 43 integration tests and critical Deep smoke |
142
+ | ED-034 | Windows formal RC acceptance; wheel/sdist builds and twine check; TestPyPI publication, artifact identity, clean install and Basic smoke |
143
+ | Cross-platform CI | Ubuntu, Windows and macOS PASS; not a claim of macOS/Linux real-provider validation |
144
+ | ED-035 | Annotated v0.2.0 tag, production PyPI publication and canonical artifact identity PASS |
145
+ | Production post-release acceptance | Fresh PyPI install, CLI version/help, doctor help, pip check, real-provider Basic smoke, v2 JSON contract, secret safety, temporary key cleanup and the five-minute onboarding target PASS |
146
+
147
+ Unit, mock integration and secret leak validation passed as part of the
148
+ completed release acceptance. Final release status is **CLOSED / PASS**.
149
+ The canonical release source, tag, artifact hashes and completed checklist are
150
+ in [RELEASE_CHECKLIST.md](RELEASE_CHECKLIST.md). Historical compatibility
151
+ evidence remains authoritative for its recorded tests and is not overwritten
152
+ by later Basic smoke or CI results.
@@ -1,4 +1,4 @@
1
- # Endpoint Doctor v0.2: Release-Facing Specification
1
+ # Endpoint Doctor v0.2.x: Release-Facing Specification
2
2
 
3
3
  ## Authority and purpose
4
4
 
@@ -6,16 +6,13 @@ Endpoint Doctor diagnoses connectivity and protocol compatibility for an
6
6
  OpenAI-compatible model API from the user's machine. It helps explain whether
7
7
  a selected endpoint/model can complete specific diagnostic requests.
8
8
 
9
- Endpoint Doctor v0.2 development was governed by the frozen engineering
10
- specification `Endpoint_Doctor_v0.2开发规范.md`, maintained as a project-level
11
- authority outside the repository release artifacts.
9
+ This document is the public release-facing specification for the frozen
10
+ v0.2 scope. It summarizes the project-level frozen engineering baseline;
11
+ it does not replace, expand, or redefine the product scope.
12
12
 
13
- This document is the repository's concise release-facing specification. It
14
- summarizes that frozen baseline; it does not replace, expand, or redefine the
15
- v0.2 product scope.
16
-
17
- The current package/CLI version is **0.1.0 (v0.2 development build)**. This
18
- document does not announce a v0.2.0 release or authorize a version bump.
13
+ Endpoint Doctor **v0.2.0**, released on **2026-09-28**, established the initial
14
+ v0.2.x release baseline. Patch releases in the v0.2.x series may correct
15
+ packaging, documentation or defects without expanding the frozen v0.2 scope.
19
16
 
20
17
  ## Modes and compatibility
21
18
 
@@ -109,8 +106,9 @@ capability.
109
106
  ED-031 live validation is CLOSED / PASS. Preserve the existing matrix and all
110
107
  three records linked in [COMPATIBILITY.md](COMPATIBILITY.md) as historical release
111
108
  evidence. ED-032 Windows clean-install validation is CLOSED / PASS; it does not
112
- replace ED-031 metrics. Remaining formal release gates are tracked in
113
- [RELEASE_CHECKLIST.md](RELEASE_CHECKLIST.md).
109
+ replace ED-031 metrics. The final v0.2.0 release is **CLOSED / PASS**;
110
+ [RELEASE_CHECKLIST.md](RELEASE_CHECKLIST.md) records completed release acceptance,
111
+ the canonical source/tag and final artifact identities.
114
112
 
115
113
  ## Explicit non-goals
116
114
 
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "apiwells"
7
- version = "0.2.0"
7
+ version = "0.2.1"
8
8
  description = "Endpoint Doctor for OpenAI-compatible model APIs"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.10"
@@ -23,6 +23,10 @@ classifiers = [
23
23
  "Topic :: Software Development :: Testing",
24
24
  ]
25
25
 
26
+ [project.urls]
27
+ Repository = "https://github.com/apiwells/endpoint-doctor"
28
+ Issues = "https://github.com/apiwells/endpoint-doctor/issues"
29
+
26
30
  [project.scripts]
27
31
  apiwells = "apiwells.cli:main"
28
32
 
@@ -1,2 +1,2 @@
1
1
  """Small diagnostics for OpenAI-compatible endpoints."""
2
- __version__ = "0.2.0"
2
+ __version__ = "0.2.1"
@@ -1,8 +1,10 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: apiwells
3
- Version: 0.2.0
3
+ Version: 0.2.1
4
4
  Summary: Endpoint Doctor for OpenAI-compatible model APIs
5
5
  License-Expression: MIT
6
+ Project-URL: Repository, https://github.com/apiwells/endpoint-doctor
7
+ Project-URL: Issues, https://github.com/apiwells/endpoint-doctor/issues
6
8
  Keywords: api,diagnostics,llm,endpoint
7
9
  Classifier: Development Status :: 3 - Alpha
8
10
  Classifier: Environment :: Console
@@ -22,21 +24,18 @@ A Local-First CLI for diagnosing OpenAI-compatible model API endpoints from
22
24
  your machine. Endpoint Doctor checks connectivity and protocol capabilities;
23
25
  it does not score model quality. Python 3.10+ is required.
24
26
 
25
- This checkout is a **v0.2 development build**. The installed package and CLI
26
- version remain **0.1.0**; v0.2.0 has not been released. Runtime dependencies
27
- include `jsonschema` for Structured Output validation.
27
+ Runtime dependencies include `jsonschema` for Structured Output validation.
28
28
 
29
29
  ## Install
30
30
 
31
- Install the current released package from PyPI:
31
+ Install the latest release from PyPI:
32
32
 
33
33
  ```sh
34
- python -m pip install apiwells
34
+ python -m pip install --upgrade apiwells
35
35
  apiwells --version
36
36
  ```
37
37
 
38
- The current repository contains v0.2 development work but remains at version
39
- 0.1.0 until RC version synchronization. v0.2.0 has not been released to PyPI.
38
+ `apiwells --version` reports the installed package version.
40
39
 
41
40
  Install this local checkout with:
42
41
 
@@ -44,8 +43,6 @@ Install this local checkout with:
44
43
  python -m pip install .
45
44
  ```
46
45
 
47
- The checkout's version command currently prints `apiwells 0.1.0`.
48
-
49
46
  ## Basic Doctor
50
47
 
51
48
  Set `APIWELLS_API_KEY` using your shell's secret-input mechanism. Do not put a
@@ -172,26 +169,26 @@ streaming TTFT.
172
169
  - Test only endpoints you are authorized to test. Private/local destinations are
173
170
  intentionally allowed; this CLI is not an unrestricted server-side URL fetcher.
174
171
 
175
- See [Security](SECURITY.md) for handling and reporting guidance.
172
+ See [Security](https://github.com/apiwells/endpoint-doctor/blob/main/SECURITY.md) for handling and reporting guidance.
176
173
 
177
174
  ## Compatibility and development
178
175
 
179
- [Compatibility](docs/COMPATIBILITY.md) indexes three point-in-time ED-031 live
176
+ [Compatibility](https://github.com/apiwells/endpoint-doctor/blob/main/docs/COMPATIBILITY.md) indexes three point-in-time ED-031 live
180
177
  certification records. These establish observed endpoint behavior, not
181
178
  universal provider support or model quality.
182
179
 
183
- [The release-facing specification](docs/V0.2_SPEC.md) summarizes the frozen
180
+ [The release-facing specification](https://github.com/apiwells/endpoint-doctor/blob/main/docs/V0.2_SPEC.md) summarizes the frozen
184
181
  v0.2 scope. Benchmark, scoring/ranking, recommendations, cost optimization,
185
182
  Router, Gateway, long-term Monitoring, Web Dashboard, SaaS accounts, cloud
186
183
  telemetry and complete Responses API coverage are outside that scope.
187
184
 
188
185
  For test coverage and the observed QA harness dependencies, see
189
- [the test plan](docs/TEST_PLAN.md). With the test harness installed, run:
186
+ [the test plan](https://github.com/apiwells/endpoint-doctor/blob/main/docs/TEST_PLAN.md). With the test harness installed, run:
190
187
 
191
188
  ```sh
192
189
  python -m pytest tests -q
193
190
  ```
194
191
 
195
- See [the release checklist](docs/RELEASE_CHECKLIST.md) for completed evidence
196
- and pending release gates, and [the changelog](CHANGELOG.md) for changes.
192
+ See [the release checklist](https://github.com/apiwells/endpoint-doctor/blob/main/docs/RELEASE_CHECKLIST.md) for release evidence,
193
+ and [the changelog](https://github.com/apiwells/endpoint-doctor/blob/main/CHANGELOG.md) for version history and changes.
197
194
  License: MIT.
@@ -1,79 +0,0 @@
1
- # v0.2 Release Checklist
2
-
3
- Repository release-facing scope reference: [V0.2_SPEC.md](V0.2_SPEC.md), derived
4
- from the project-level frozen engineering baseline maintained outside the
5
- repository release artifacts.
6
-
7
- A checked evidence item applies only to its recorded development build/environment,
8
- not automatically to a future RC or final artifact. Unverified work stays unchecked.
9
-
10
- Current baseline: branch `feature/v0.2-diagnostics`, starting commit
11
- `f63de41`, package/CLI **0.1.0 (v0.2 development build)**.
12
- v0.2.0 has not been released.
13
-
14
- ## Completed development-build evidence
15
-
16
- - [x] ED-031 real endpoint/provider live validation: **CLOSED / PASS**.
17
- The [compatibility index](COMPATIBILITY.md) links the authoritative matrix
18
- and MODEL-0001, MODEL-0002 and MODEL-0003 records.
19
- - [x] ED-032 Windows clean-install test: **CLOSED / PASS**.
20
- - [x] Local wheel + sdist build: **PASS**.
21
- - [x] Windows Basic real endpoint smoke: **PASS**.
22
- - [x] Windows clean-wheel integration suite: **43 passed**.
23
- - [x] Windows critical Deep smoke: **PASS**.
24
- - [x] No secret leak observed in the recorded validation.
25
-
26
- The ED-032 outcomes above are carried forward from the supplied ED-033
27
- acceptance baseline; they are not newly executed ED-033 checks. They do not
28
- replace or overwrite ED-031 compatibility measurements. Historical
29
- [0.1.0 validation](releases/0.1.0/VALIDATION.md) remains separate evidence, not
30
- v0.2 RC acceptance.
31
-
32
- ## Frozen Scope gates (section 46)
33
-
34
- | Gate | Required evidence | Current release disposition |
35
- |---|---|---|
36
- | A — Baseline | v0.1 regression tests, editable install, CLI smoke, clean baseline | Historical gate evidence must be included in final release review; no new PASS claimed here |
37
- | B — Core Architecture | Unified ProbeResult; runner independent of console; reporters do not send HTTP | Implementation described in the spec; final gate acceptance remains to be recorded |
38
- | C — Functional | Success, unsupported and failure paths for Models, Chat, Streaming, Tools and Structured Output | Test plan covers these paths; complete release validation evidence remains pending |
39
- | D — Security | Secret Leak Test passes; any complete credential leak blocks release | No leak observed in accepted validation; retain the dedicated release test evidence before final acceptance |
40
- | E — Real Providers | At least 3 independent providers/endpoints covering 3–5 Chinese models | PASS: closed ED-031 records |
41
- | F — Package | Build wheel + sdist and clean install | PASS for the development build via ED-032; RC/final artifact acceptance remains pending |
42
- | G — Release Documentation | README, CHANGELOG, SECURITY and the four release documents | PASS — ED-033 documentation reviewed and accepted |
43
-
44
- ## Documentation acceptance (ED-033)
45
-
46
- - [x] Reconcile the release-facing specification/checklist with the supplied
47
- frozen specification and current CLI compatibility behavior.
48
- - [x] Reviewer acceptance of README, changelog, security guidance, specification,
49
- test plan, compatibility index and this checklist (Gate G): PASS.
50
-
51
- TESTENV-01: the observed Windows harness used pytest **9.1.1**,
52
- pytest-httpserver **1.1.5** and Werkzeug **3.1.8**. These are test dependencies,
53
- not ApiWells runtime dependencies. See [TEST_PLAN.md](TEST_PLAN.md).
54
- No new dev-dependency packaging mechanism is selected in ED-033.
55
-
56
- ## Remaining formal release gates
57
-
58
- - [ ] Complete remaining required release validation under the frozen scope:
59
- unit, mock integration, Secret Leak Test and any outstanding platform/Python
60
- coverage; retain evidence tied to the release candidate.
61
- - [ ] Complete macOS and Linux installation, `--version`, `--help`, Basic smoke
62
- and mock-suite validation required by section 38.
63
- - [ ] Verify the minimal CI checks: unit tests, mock integration, wheel/sdist build
64
- and package verification; live provider tests stay separately controlled.
65
- - [ ] Synchronize production version declarations to **0.2.0** in both
66
- `pyproject.toml` and `src/apiwells/__init__.py` before formal RC/final artifacts.
67
- - [ ] Build and identify the formal **RC artifact**; validate metadata and
68
- preserve artifact hashes and provenance.
69
- - [ ] Complete **TestPyPI** publication/installation validation.
70
- - [ ] Complete **RC clean-install acceptance** against the actual RC artifact.
71
- - [ ] Review all required release evidence and approve the final release.
72
- - [ ] Publish the final **PyPI 0.2.0 release**.
73
- - [ ] Complete **post-release PyPI clean-install smoke**, including the frozen
74
- onboarding target of a first Basic check within about five minutes.
75
-
76
- VERSION-01: both version declarations remain 0.1.0 in ED-033. Whether to refactor
77
- to a single version source is undecided. Closed ED-031/ED-032 work is not
78
- reopened by these future artifact-specific gates. This checklist does not
79
- authorize publishing.
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes