docs(static-variables): recover orphaned PR #1035 + clarify deterministic ≠ invisible#1038
Merged
dhruva-reddy merged 1 commit intomainfrom Apr 29, 2026
Conversation
…stic ≠ invisible Two combined goals -- the previous PR #1035 was orphaned by an inverted merge order (parent #1033 squash-merged to main 25 seconds before child #1035 squash-merged into the parent's branch, so #1035's content was applied to a branch that was already obsolete and never propagated to main). This restores that hardening AND fixes wording the user flagged in review of the original page. Recovers from orphaned commit 3bbefdb the full PR #1035 hardening work: trust tiers (Tier 1 server-trusted, Tier 2 conversation-derived, Tier 3 LLM-derived), five common failure modes, prompt-injection threat-model framing, dashboard mental model, handoff-data-forwarding section, legacy assistant.model.functions[] footgun warning, the 'Static parameters as a security boundary' section, and the worked caller-ID example. Wording fixes applied on top of that recovery, eliminating language that conflated two different guarantees -- (1) static parameters are truly LLM-invisible (server-merged into the request body, never in the schema sent to the model) vs. (2) variableExtractionPlan aliases chain values across tools deterministically but the source response IS in the LLM's context (it was added to conversation history as a role: tool message). Specific changes: - Subtitle (line 3): split the two guarantees, no longer claims both are 'without LLM involvement' - Intro bullet (line 19): 'deterministically -- the next tool gets the correct value regardless of how the LLM behaves between calls' - Deterministic tool chaining intro (line 457): rewritten + new Warning callout explicitly stating 'Deterministic does not mean invisible' with the specific code-level claim that Tool A's response is added to the LLM's role:tool message history - Tips section: new bullet 'Aliases are a determinism primitive, not an invisibility primitive', flagging that hiding values from the model requires the tool server to omit them from the response body in the first place Skipped: test-writer / code-reviewer (docs-only PR).
Contributor
Author
This stack of pull requests is managed by Graphite. Learn more about stacking. |
Contributor
|
🌿 Preview your docs: https://vapi-preview-6be5c433-ecff-4d28-94c5-2046a939dd65.docs.buildwithfern.com |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

Description
Two combined goals — recovering work that was lost in a stacked-PR merge-order accident, and applying wording corrections the user flagged in review of the original page.
Why this PR is needed
Previous PR #1035 was orphaned by an inverted merge order:
3887bf0lands on main: 2 files, +189 lines (squads page + nav entry)dr/squads-passing-data-between-assistants)3bbefdblands on the parent branch:static-variables-and-aliases.mdx+277/-14Because the parent merged to main BEFORE the child merged into the parent, PR #1035's commit
3bbefdbwas applied to a branch that was effectively obsolete. Its content never propagated to main. GitHub's UI shows PR #1035 as MERGED (technically true — it merged into its base), but the parent branch was already squashed into main as a different commit. The orphaned3bbefdbis reachable on GitHub by SHA but is not on any branch.This PR cherry-picks
3bbefdbonto fresh main, then layers the wording corrections on top.What lands in this PR
Recovered from the orphaned PR #1035 commit:
assistant.model.functions[]does NOT support static parameters/squads/passing-data-between-assistants)Parameters(JSON schema editor) vs.Static Body Fields(key/value rows with Liquid)New wording corrections layered on top:
The original page conflated two different guarantees:
parametersare truly LLM-invisible — server-merged into the request body, never in the schema sent to the model.variableExtractionPlanaliases chain values across tools deterministically, but the source response IS in the LLM's context (added to conversation history as arole: "tool"message).Specific edits:
<Warning>callout titled "Deterministic does not mean invisible" that explicitly contrasts the determinism guarantee (alias) with the invisibility guarantee (static parameters)Testing Steps
fern check— 0 errorsgt log shortshows the branch as connected to maingit log origin/main..HEADshows exactly 1 commit/squads/passing-data-between-assistantsresolvesSkipped
Related
3bbefdb6841c92d3e711932eaa092ed970eff5e2(which was the squash of PR docs(static-variables): add prompt-injection threat model and trust tiers #1035 into a branch that subsequently became stale)/squads/passing-data-between-assistants(merged via feat: add "Passing data between assistants" page to squads #1033)