You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Opt-in runtime reasoning node: admit an acknowledged non-deterministic AI step (second fenced carve-out beside RFC #223) #694
An opted-in way for an app to include one node whose output comes from AI reasoning at run time, alongside the existing single carve-out (vision.extract, RFC #223). Today check_node_agents (cli/src/validate.rs, ~L1245) rejects every other model in the run path with E_APP_RUNTIME_MODEL_FORBIDDEN.
Why
FloLess owner ruling (2026-10-12): a person may use an Agent (a named, scoped AI responsibility in FloLess) as a step in a workflow, provided they confirm they understand that step's output is not deterministic. "Build once, run forever" still holds: the app is compiled and approved once and runs unchanged; only that node's output varies. FloLess runs the reasoning through the person's own AI provider (Claude Code / Codex); AWARE stays model-free and only needs to admit, mark and label the node.
Proposed shape (for discussion, mirrors the RFC #223 fence)
Structural opt-in, not name-keyed: a curated command flagged e.g. model-reasoning: true on an agent declaring capabilities.runtime-model-reasoning: true. Every other path still gets E_APP_RUNTIME_MODEL_FORBIDDEN.
App-level acknowledgement in the source, e.g. nondeterministic-output: acknowledged (who/when supplied by the front door). Validate rejects a reasoning node without it, with a clear message.
The lock records it: the compiled node carries runtime-model: reasoning (distinct from extraction), and the lock carries an app-level nondeterministic-output: true marker so every front door can label results honestly. The node's instructions/config stay part of the source hash, so the .lock drift gate still pins the step, not its answer.
Run output is labelled: the run record marks that node's output as AI-produced / non-deterministic. No content-hash replay claim of determinism.
Same constraints as extraction where they still make sense: cannot be an assert: evaluator; open question whether it may feed control flow (FloLess leans: yes, if labelled), and whether a downstream host write must sit behind approve: (FloLess leans: yes by default).
Acceptance
aware app validate admits the opted-in node only with the capability + acknowledgement, rejects all other model paths as today.
aware app compile writes the markers; aware app run records the node output as non-deterministic.
Heads-up for whoever lands this (found while reading the branch for floless.app#2241 slice S3a): REASONING_MIN_CLI is 0.159.0 in feat/runtime-reasoning-node-694 (cli/src/manifest/agent.rs), but v0.159.0 was released on 2026-10-12 (release notes: #685/#686/#690/#689/#610/#696) and does not contain this fence. A 0.159.0 install would therefore satisfy the requires-runtime floor and still run a model-reasoning command as an ordinary deterministic node, which is exactly what the floor exists to prevent. The first release that can carry #694 is 0.160.0, so the constant (and the plan's/spec's 0.159.0 mentions) should be re-pinned to the version that actually ships it. FloLess keeps its own floor in one constant (AGENT_STEP_MIN_AWARE) and will track whatever lands here.
Fixed in #698 - ready to test; close on pass or label qa-rejected if it fails. Lock fields: node runtime-reasoning: true, top-level nondeterministic-output: true; source nondeterministic-output: acknowledged; trace node-output nondeterministic: true. Runtime floor 0.160.0.
Activity
pawellisowski commentedon Oct 12, 2026
FloLess tracking epic: pawellisowski/floless.app#2241
pawellisowski commentedon Oct 12, 2026
Heads-up for whoever lands this (found while reading the branch for floless.app#2241 slice S3a):
REASONING_MIN_CLIis0.159.0infeat/runtime-reasoning-node-694(cli/src/manifest/agent.rs), but v0.159.0 was released on 2026-10-12 (release notes: #685/#686/#690/#689/#610/#696) and does not contain this fence. A 0.159.0 install would therefore satisfy therequires-runtimefloor and still run amodel-reasoningcommand as an ordinary deterministic node, which is exactly what the floor exists to prevent. The first release that can carry #694 is 0.160.0, so the constant (and the plan's/spec's 0.159.0 mentions) should be re-pinned to the version that actually ships it. FloLess keeps its own floor in one constant (AGENT_STEP_MIN_AWARE) and will track whatever lands here.feat(validate): opt-in acknowledged runtime reasoning node, second fe…
pawellisowski commentedon Oct 12, 2026
Fixed in #698 - ready to test; close on pass or label qa-rejected if it fails. Lock fields: node
runtime-reasoning: true, top-levelnondeterministic-output: true; sourcenondeterministic-output: acknowledged; trace node-outputnondeterministic: true. Runtime floor 0.160.0.