@plumbus/core 0.6.15 → 0.6.17

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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,33 @@
1
1
  # @plumbus/core changelog
2
2
 
3
+ ## 0.6.17 — 2026-08-16 — `plumbus e2e` server lifecycle hardening
4
+
5
+ ### Changed
6
+
7
+ - **`AGENT_WIRING_VERSION` bumped to 14.** `plumbus init` references `@plumbus/voice/instructions/continuous-sessions.md` (talk-over re-queue, stitched transcripts, sentence chunker, opt-in backchannel). Pointers are inert when `@plumbus/voice` is not installed. Run **`plumbus init --patch`** on existing projects to refresh the managed wiring block.
8
+
9
+ ### Fixed
10
+
11
+ - **Empty provider API-key placeholders no longer crash worker boot.** A dotenv line like `AI_ANTHROPIC_API_KEY=` (present but empty, often left alongside a model var) used to produce a provider slot that 0.6.16's boot-time key validation then rejected — `AI provider "anthropic" requires apiKey` before the worker could start. Env discovery now treats an empty key as "slot not configured" and skips it, matching ≤0.6.15's effective behavior. Keyless Bedrock slots are unaffected (separate region-keyed reader).
12
+
13
+ - **`plumbus e2e` can no longer orphan the frontend dev server on interruption.** The auto-started `next dev` runs as a detached process group, and cleanup previously lived only in a `finally` block — Ctrl-C/SIGTERM on the CLI (the detached group never receives the terminal's signal) or a SIGKILL/crash left an immortal dev server compiling and watching until reboot (reproduced 2026-08-16). Now: SIGINT/SIGTERM/SIGHUP handlers kill the server group before exiting; a tiny detached watchdog reaps the group if the CLI vanishes without cleanup (SIGTERM, then SIGKILL after a 5 s grace; it self-exits when the group is gone); and vitest runs via async `spawn` instead of `execFileSync` so a blocked event loop can't defer the handlers. Normal shutdown is unchanged and verified sufficient: the whole server tree stays in the spawn group and exits within ~3 s of the group SIGTERM.
14
+ - **Port preflight** — the command fails fast with cleanup guidance when the target port is already in use (orphaned previous run or a concurrent checkout), instead of silently running the suite against a foreign server and reporting a bogus green (reproduced 2026-08-16 with two checkouts sharing one port).
15
+ - **Dev-server heap cap** — the server spawns with `NODE_OPTIONS=--max-old-space-size=4096` (skipped when the caller already sets a cap) plus `NEXT_TELEMETRY_DISABLED=1`. A runaway compile now fails the run loudly instead of pushing the machine into memory-pressure thrash.
16
+
17
+ ## 0.6.16 — 2026-08-12 — Amazon Bedrock provider + agent wiring v13
18
+
19
+ ### Added
20
+
21
+ - **Amazon Bedrock provider slot** — `createProviderAdapter('bedrock', …)` dynamically loads optional peer `@plumbus/ai-bedrock` (`0.1.x`). Env discovery: `AI_BEDROCK_REGION` (or `AI_BEDROCK_ENABLED` + `AWS_REGION`), `AI_BEDROCK_MODEL`, `AI_BEDROCK_EMBEDDING_MODEL`, `AI_BEDROCK_PRICING_FILE`, timeouts/limits.
22
+ - **Provider-supplied AI cost** — optional `cost` on `ProviderResponse` and stream `done` / `usage` events. `createAIService` prefers adapter cost when set (Bedrock package-owned pricing); otherwise uses `calculateModelCost` against the OpenAI/Anthropic catalog.
23
+ - **`AIProviderConfig`** — added `region`, `pricingFilePath`, `embeddingModel`, `pricingCacheTtlMs` for Bedrock-style providers. `apiKey` stays a required `string`, so `config.ai.apiKey` still assigns to `string` in existing app bootstrap.
24
+ - **`AIProviderSlotConfig`** — new exported type accepted by `createProviderAdapter`: identical to `AIProviderConfig` but with optional `apiKey`, so keyless providers (Bedrock uses the AWS credential chain) need no placeholder key. An `AIProviderConfig` remains assignable to it, so existing calls are unaffected. Env discovery sets `apiKey: ''` on the Bedrock slot.
25
+
26
+ ### Changed
27
+
28
+ - **`AGENT_WIRING_VERSION` bumped to 13.** `plumbus init` references `@plumbus/ai-bedrock/instructions/pricing.md` (AWS Price List URLs, curl, normalize, ConfigMap) alongside framework + README. Pointers are inert when the package is not installed. Run **`plumbus init --patch`** on existing projects to refresh the managed wiring block.
29
+ - **OpenAI SSE stream parser** — when a chunk carries both `content` and `finish_reason` (Bedrock Mantle / some OpenAI-compatible proxies), emit the content delta before `done` so streamed text is not dropped.
30
+
3
31
  ## 0.6.15 — 2026-08-10 — migrate rollback hardening + model pricing sync
4
32
 
5
33
  ### Fixed