@@ -2079,6 +2079,16 @@ export namespace SessionPrompt {
20792079 }
20802080 }
20812081
2082+ //
2083+ // NOTE: `family` is a free-form, config-settable string on the model schema —
2084+ // a connection that declares `family: "claude-*"` on a non-Anthropic gateway
2085+ // will classify as Anthropic-like and SKIP the hoist, which reintroduces the
2086+ // #887 refusal on that backend. This is a routing-trust input, not an
2087+ // escalation vector (whoever sets the model config already controls the
2088+ // prompt), but operators adding gateway models should set `family` correctly.
2089+ //
2090+ // Exported for testing — the hoist/classification contract is exercised
2091+ // behaviorally in test/session/plan-layer-e2e.test.ts.
20822092 // altimate_change start — model-family helper used by the trust-aware hoist below.
20832093 // Uses `familyVendor` so specific family values (`claude-sonnet`, `claude-haiku`,
20842094 // `gemini-pro`, etc.) classify correctly — an exact `family === "anthropic"`
@@ -2096,16 +2106,6 @@ export namespace SessionPrompt {
20962106 if ( / ^ a n t h r o p i c [ - _ / ] / . test ( apiId ) ) return true
20972107 return false
20982108 }
2099- //
2100- // NOTE: `family` is a free-form, config-settable string on the model schema —
2101- // a connection that declares `family: "claude-*"` on a non-Anthropic gateway
2102- // will classify as Anthropic-like and SKIP the hoist, which reintroduces the
2103- // #887 refusal on that backend. This is a routing-trust input, not an
2104- // escalation vector (whoever sets the model config already controls the
2105- // prompt), but operators adding gateway models should set `family` correctly.
2106- //
2107- // Exported for testing — the hoist/classification contract is exercised
2108- // behaviorally in test/session/plan-layer-e2e.test.ts.
21092109 // altimate_change end
21102110
21112111 // altimate_change start — return the trusted reminder parts insertReminders just appended
0 commit comments