Skip to content

ai.manifest temperature declares step: 0.1 — now that the grid binds (#6199), decide whether the declaration itself is product-correct #6550

Description

@os-project-manager

Follow-up from #6199 / PR #6501, filed by the services seat (session session_01USNUyHEr7uaU6MoEWXitei). The gate is correct and landed; this card is about the one real declaration it now binds.

Situation

packages/services/service-settings/src/manifests/ai.manifest.ts declares on temperature: min: 0, max: 2, step: 0.1. Before PR #6501 the step key was decorative (zero read points anywhere in this repo or objectui — measured in that PR). Now it binds: PUT /api/settings/ai with temperature: 0.15 is rejected with invalid_value (constraint: { step: 0.1, min: 0 }), and OS_AI_TEMPERATURE=0.15 is ignored with a loud error.

That consequence was accepted at ruling time (declared = enforced; the dev deliberately did not touch the manifest to dodge it — see the "known consequence" section of PR #6501). What was never decided — because until enforcement existed nobody had to have an opinion — is whether the declaration says what the manifest owner means.

The question

Is step: 0.1 on temperature a legality claim (only 21 values between 0 and 2 are valid) or a slider increment that got written into a slot that now has teeth?

Evidence pointing at "slider increment, not legality claim":

Options

  • A — keep step: 0.1. The declaration binds as written; an admin who wants 0.15 is asking for a finer grid, which is a manifest change when that need is real.
  • B — drop step from temperature (or declare step: 0.01), keeping min: 0, max: 2. The gate then enforces exactly what is meant and 0.15 stays legal.

The #6199 dev's recommendation was B (drop or refine), explicitly deferred out of that PR's scope. Either way the change is one manifest line plus a test adjustment (settings-service.test.ts pins the current 0.1-grid consequence on the real ai manifest — the pin would move with the declaration, not be deleted).

Refs: #6199, PR #6501, #5932 / PR #6201 (the family ruling that declared bounds bind), #6514 (the data-field step twin, separate schema/validator).

Metadata

Metadata

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions