@te-river/opencode-team-mode 1.7.4 → 1.7.5

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.
@@ -574,4 +574,38 @@ the same file as a target, with a restore path if the second step throws. `[R]`
574
574
  both yes here — the two checks the installer prints. What no check covered was *which id the
575
575
  host derives from it*, and that is the difference between Team being the default and a silent
576
576
  `build`. A verifiable claim has to name the artefact the host actually keys on (the FILE NAME),
577
- not the one we wrote (the path we computed). `[R]`
577
+ not the one we wrote (the path we computed). `[R]`
578
+
579
+ ### 2026-10-18 — the request-layer `temperature` fill is gone, because a field we added broke other models `[L][R]`
580
+
581
+ Since the v2 port the request layer wrote `temperature: 0.2` into every Team request that
582
+ carried none (`v2-session.ts`, gated on `event.options.temperature === undefined` so a user's
583
+ model variant always outranked us). The reason was determinism — the reply skeleton and the
584
+ routing table both depend on the model following format, and 0.2 was our one lever on that.
585
+
586
+ **What we had not accounted for: the field is not universally accepted.** Some providers reject
587
+ `temperature` outright, and a request that carries it fails at the provider rather than at our
588
+ gate. Because we wrote the field whenever the host left it absent, we converted a request that
589
+ would have worked into one that could not — for those models the plugin was the outage. `[L]`
590
+
591
+ So the whole surface is removed rather than defaulted: the request-layer write, the
592
+ `options.temperature` plugin option and its boot field (`request_temperature`), the capability
593
+ row that reported it, the `温度 …` line in `tm_stats`, the six `temperature: 0.2` entries in
594
+ `src/agents.ts` (which never reached the runner anyway — the generator does not emit the field
595
+ into `agents/*.md`, so they were a claim with no mechanism behind it), the `temperature?:
596
+ number` on `AgentConfig`, and the v1-only `agentTemperature` key. A `team-mode.jsonc` that
597
+ *uncomments* `agentTemperature` is now reported as an unknown key (warned, never applied) — the
598
+ registry is the only source of known keys — while the auto-created inert template keeps it as a
599
+ comment line, so an existing install sees nothing change until someone edits that line.
600
+
601
+ **The regression test runs the other way now.** `test-v2-adapter.mjs` no longer asserts 0.2
602
+ lands on the request; it asserts we write **no** `temperature` at all, and separately that a
603
+ temperature already on the request is never touched. A test that asserted the old behaviour
604
+ would have failed the fix; a test that only asserted absence would not catch us re-adding the
605
+ overwrite path. `[R]`
606
+
607
+ **The lesson, in the general form.** Adding a field to somebody else's request is not a
608
+ no-op because it is "only a default". The host assembled a request that worked; our fill made
609
+ it a request some providers refuse. A plugin that improves determinism on one model can
610
+ therefore remove compatibility on another, and the compatibility cost is invisible in our own
611
+ logs — it shows up as somebody else's API error. `[R]`
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@te-river/opencode-team-mode",
3
- "version": "1.7.4",
3
+ "version": "1.7.5",
4
4
  "description": "Team collaboration mode plugin for OpenCode Desktop — injects specialized agents (architect, reviewer, implementer, tester, researcher) and team workflow commands into your OpenCode workspace.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",