|
1 | 1 | # BUILD_REPORT |
2 | 2 |
|
3 | 3 | ## sprint objective |
4 | | -Implement P11-S5: Azure Adapter + AutoGen Integration through the existing provider abstraction by adding Azure provider registration/test/invoke support, enterprise credential/auth hardening, Azure capability posture fields, and AutoGen integration documentation/sample path. |
| 4 | +Implement `P11-S6` by adding tier-2 model packs (DeepSeek, Kimi, Mistral) on the shipped model-pack abstraction, plus compatibility/setup clarity assets for local, self-hosted, enterprise, and external-agent paths, without reopening `P11-S1` through `P11-S5` architecture. |
5 | 5 |
|
6 | 6 | ## completed work |
7 | | -- Added Azure provider adapter support in the runtime adapter registry (`provider_key: azure`) with normalized capability discovery and invoke behavior using the existing `openai_responses` runtime contract. |
8 | | -- Added Azure-specific helper module for: |
9 | | - - auth header handling (`azure_api_key`, `azure_ad_token`) |
10 | | - - `api-version` query handling |
11 | | - - model enumeration payload parsing |
12 | | - - OpenAI-compatible responses invoke payload/response normalization |
13 | | -- Added additive provider data fields and migration support: |
14 | | - - `model_providers.azure_api_version` |
15 | | - - `model_providers.azure_auth_secret_ref` |
16 | | - - expanded `model_providers.auth_mode` constraint to include Azure auth modes |
17 | | -- Added Azure secret-reference credential handling in runtime secret resolution: |
18 | | - - Azure modes now resolve credentials from `azure_auth_secret_ref` |
19 | | - - plaintext Azure credentials are not persisted in provider rows |
20 | | -- Added Azure registration endpoint: |
21 | | - - `POST /v1/providers/azure/register` |
22 | | - - strict auth payload validation (mode-specific field requirements) |
23 | | -- Preserved existing provider/runtime seams and behavior for shipped P11-S1 through P11-S4 paths. |
24 | | -- Added Azure capability snapshot posture fields: |
25 | | - - `azure_api_version` |
26 | | - - `azure_auth_mode` |
27 | | -- Added docs and sample integration path: |
28 | | - - Azure + AutoGen integration guide in `docs/integrations/phase11-azure-autogen.md` |
29 | | - - runtime bridge sample in `scripts/run_phase11_autogen_runtime_bridge.py` |
30 | | -- Updated control-doc truth checker markers to P11-S5 active-sprint truth so required truth checks pass. |
| 7 | +- Added tier-2 built-in pack specs in `model_packs.py`: |
| 8 | + - `deepseek@1.0.0` |
| 9 | + - `kimi@1.0.0` |
| 10 | + - `mistral@1.0.0` |
| 11 | +- Preserved shipped pack API behavior and selection semantics: |
| 12 | + - seeded catalog still resolves through existing `/v1/model-packs` flow |
| 13 | + - workspace binding and request override precedence are unchanged |
| 14 | + - no new runtime/provider paths were introduced |
| 15 | +- Extended family contract/type support for tier-2 families: |
| 16 | + - `deepseek`, `kimi`, `mistral` |
| 17 | +- Added additive migration `20260412_0056_phase11_model_packs_tier2_families.py` to widen `model_packs_family_check` without schema redesign. |
| 18 | +- Updated catalog reservation conflict text to cover built-in catalog entries (tier-1 + tier-2). |
| 19 | +- Added/updated sprint docs: |
| 20 | + - `docs/integrations/phase11-model-pack-compatibility.md` with provider/pack compatibility matrices |
| 21 | + - `docs/integrations/phase11-setup-paths.md` with operator setup paths for local, self-hosted, enterprise, and external-agent use |
| 22 | + - `docs/integrations/phase11-azure-autogen.md` guardrails/references refreshed for P11-S6 |
| 23 | +- Updated sprint-owned tests for tier-2 catalog presence, runtime override behavior, and migration coverage. |
| 24 | +- Updated control-doc truth checker markers to active `P11-S6` packet/state markers. |
| 25 | +- Updated `REVIEW_REPORT.md` for `P11-S6`. |
31 | 26 |
|
32 | 27 | ## incomplete work |
33 | 28 | - None within the sprint packet scope. |
34 | 29 |
|
35 | 30 | ## files changed |
36 | | -- `apps/api/src/alicebot_api/azure_provider_helpers.py` (new) |
37 | | -- `apps/api/src/alicebot_api/provider_runtime.py` |
38 | | -- `apps/api/src/alicebot_api/main.py` |
39 | | -- `apps/api/src/alicebot_api/store.py` |
| 31 | +- `apps/api/src/alicebot_api/model_packs.py` |
40 | 32 | - `apps/api/src/alicebot_api/contracts.py` |
41 | | -- `apps/api/alembic/versions/20260412_0055_phase11_azure_provider_config_fields.py` (new) |
42 | | -- `tests/unit/test_provider_runtime.py` |
43 | | -- `tests/integration/test_phase11_provider_runtime_api.py` |
44 | | -- `tests/unit/test_20260412_0055_phase11_azure_provider_config_fields.py` (new) |
45 | | -- `docs/integrations/phase11-azure-autogen.md` (new) |
46 | | -- `scripts/run_phase11_autogen_runtime_bridge.py` (new) |
| 33 | +- `apps/api/src/alicebot_api/main.py` |
| 34 | +- `apps/api/alembic/versions/20260412_0056_phase11_model_packs_tier2_families.py` (new) |
| 35 | +- `tests/unit/test_model_packs.py` |
| 36 | +- `tests/integration/test_phase11_model_packs_api.py` |
| 37 | +- `tests/unit/test_20260412_0056_phase11_model_packs_tier2_families.py` (new) |
| 38 | +- `docs/integrations/phase11-model-pack-compatibility.md` |
| 39 | +- `docs/integrations/phase11-setup-paths.md` (new) |
| 40 | +- `docs/integrations/phase11-azure-autogen.md` |
47 | 41 | - `scripts/check_control_doc_truth.py` |
48 | | -- `README.md` |
49 | | -- `BUILD_REPORT.md` |
50 | 42 | - `REVIEW_REPORT.md` |
| 43 | +- `BUILD_REPORT.md` |
51 | 44 |
|
52 | 45 | ## tests run |
53 | 46 | 1. `python3 scripts/check_control_doc_truth.py` |
54 | 47 | - Result: PASS |
55 | 48 |
|
56 | 49 | 2. `./.venv/bin/python -m pytest tests/unit tests/integration -q` |
57 | | -- Result: PASS (`1142 passed in 196.54s (0:03:16)`) |
| 50 | +- Result: PASS (`1145 passed in 185.18s (0:03:05)`) |
58 | 51 |
|
59 | 52 | 3. `pnpm --dir apps/web test` |
60 | | -- Result: PASS (`62 passed`, `199 passed`, duration `4.62s`) |
| 53 | +- Result: PASS (`62 files`, `199 tests passed`, duration `5.49s`) |
61 | 54 |
|
62 | 55 | 4. Focused sprint tests during implementation: |
63 | | -- `./.venv/bin/python -m pytest tests/unit/test_provider_runtime.py tests/unit/test_provider_secrets.py tests/unit/test_20260412_0055_phase11_azure_provider_config_fields.py tests/integration/test_phase11_provider_runtime_api.py -q` |
64 | | -- Result: PASS (`20 passed`) |
| 56 | +- `./.venv/bin/python -m pytest tests/unit/test_model_packs.py tests/integration/test_phase11_model_packs_api.py tests/unit/test_20260412_0056_phase11_model_packs_tier2_families.py -q` |
| 57 | +- Result: PASS (`14 passed in 1.62s`) |
65 | 58 |
|
66 | 59 | ## blockers/issues |
67 | 60 | - No functional blockers for sprint scope implementation. |
68 | | -- Pre-existing dirty files not modified as sprint work and excluded from sprint merge scope: |
69 | | - - `ARCHITECTURE.md` |
70 | | - - `PRODUCT_BRIEF.md` |
| 61 | +- Pre-existing dirty file not modified as sprint work and excluded from sprint merge scope: |
| 62 | + - `README.md` |
71 | 63 |
|
72 | 64 | ## recommended next step |
73 | | -Proceed to Control Tower merge approval for `P11-S5`, then run staging validation against a live Azure endpoint for both `azure_api_key` and `azure_ad_token` registration/invoke flows before production rollout. |
| 65 | +Proceed to merge review for `P11-S6`, then run staging smoke checks for one local provider, one self-hosted OpenAI-compatible provider, and one Azure provider with tier-2 and custom pack coverage. |
0 commit comments