Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 12 additions & 5 deletions apps/presentation/site/public/blog/context-delivery/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
<main id="main"><div class="article-heading"><a class="back" href="../">← All articles</a><p class="eyebrow">Context delivery</p><h1>An Agent needs a way to look things up, too</h1><p class="lead">Follow one voice task through progressive reads, JSON Pointers, exact sharing, compaction-cycle deltas, and complete recovery.</p><div class="byline"><a href="https://github.com/loopx-project/loopx">LoopX</a><span>·</span><time datetime="2026-11-01">November 1, 2026</time></div></div>
<div class="article-layout"><aside class="toc"><details><summary>On this page</summary><nav aria-label="On this page"><a href="#example">Follow one task: give an assistant voice input</a><a href="#known-paths">When you know the locations, read them together</a><a href="#discover">When the structure is unfamiliar, index the relevant subtree</a><a href="#requirements">See requirements first, then open their evidence</a><a href="#sharing">Share exact records within one delivery</a><a href="#cycle">On the next continuation, deliver what changed</a><a href="#native-path">When enabled, the default output is a reading entrypoint</a><a href="#recovery">Recover missing context while preserving the original work</a><a href="#evidence">What the measurements establish</a><a href="#reproduce">Read the same material yourself</a></nav></details></aside><article class="prose"><p>Long-running work accumulates material: the original goal, later constraints, attempted routes, failed experiments and current progress. Sending everything again on each continuation repeats more and more content; keeping only a summary can make the original basis of a decision difficult to recover.</p>
<p>LoopX's context delivery separates these jobs: <strong>preserve complete sources, read the facts needed for the current decision, expand supporting material around questions, and reuse unchanged structures exactly within a valid compaction cycle.</strong></p>
<p>This article checks the native Codex path at <a href="https://github.com/loopx-project/loopx/tree/73cf83edd6d80275d0c8f44c5289837eebe8ab0d"><code>73cf83ed</code></a>, a 2.2 candidate source. Consult <a href="https://github.com/loopx-project/loopx/releases">Releases</a> for publication status. In that implementation, supported POSIX Codex App/SSH sessions and new benchmark heartbeat trials default to context delivery; saved off remains effective and explicit off is available. When enabled, complete content is saved first and the Agent receives an entrypoint for current facts.</p>
<p>This article describes the native Codex path in released <a href="https://github.com/loopx-project/loopx/tree/v2.2.0">LoopX 2.2.0</a>. Supported POSIX Codex App/SSH sessions and new benchmark heartbeat trials default to context delivery; saved off remains effective and explicit off is available. When enabled, complete content is saved first and the Agent receives a reading entrypoint for current facts. See the <a href="https://github.com/loopx-project/loopx/releases/tag/v2.2.0">2.2.0 release notes</a> for publication and validation scope. The synthetic measurements below retain their original source and experimental conditions.</p>
<p>Think of a capture as a complete book. An index locates its chapters; a JSON Pointer addresses a place inside it. Progressive reading determines how deeply to open the material now. Differential delivery determines what can be reused on the next continuation.</p>
<h2 id="example">Follow one task: give an assistant voice input</h2>
<p>Suppose an assistant needs to understand a voice note and reply in its original chat. Its complete material contains the goal, provider constraints, privacy requirements, acceptance and a long discussion of alternatives. This is a teaching example; the example program below generates the complete data in an isolated directory.</p>
Expand Down Expand Up @@ -174,7 +174,12 @@ <h2 id="cycle">On the next continuation, deliver what changed</h2>
<h2 id="native-path">When enabled, the default output is a reading entrypoint</h2>
<p>Connect these operations back to the currently supported native Codex quota path:</p>

<figure class="diagram"><p class="diagram-label">The enabled delivery path</p><ol><li><strong>Complete source</strong>: projection.json preserves current facts.</li><li><strong>Necessary view</strong>: required-context.json keeps complete requirements and points back to supporting originals.</li><li><strong>Cycle delivery</strong>: verify baseline and scope; choose full or delta.</li><li><strong>Current reader</strong>: first read admission, stops, the original task and accumulated requirements; include an index and short overview when they fit. Follow Pointers for supporting detail.</li></ol><figcaption>Saved files are verifiable sources. Model input still depends on the reads actually completed.</figcaption></figure>
<figure class="diagram"><p class="diagram-label">One capture, from saved source to reading</p><pre style="padding:0;margin:0;border:0;background:transparent"><code class="language-text">decision-&lt;id&gt;/
├─ projection.json source
├─ required-context.json facts
├─ delivery.json full/delta
└─ *.reader.json reader
</code></pre><figcaption>Save the complete source, prepare the necessary view, then choose the cycle delivery. The model receives a small reference and reads the facts its current decision needs; supporting originals remain reachable. This is a layout illustration. Use the exact files and commands returned by the current invocation.</figcaption></figure>
<p>One useful property is that <strong>even with <code>mode: &quot;delta&quot;</code>, the Agent can select facts directly through current <code>recovery</code>.</strong> It does not first need to read an old baseline or replay every delta. Delta's <code>path</code> may address <code>delivery.json</code>; <code>recovery</code> and <code>select_command</code> address the complete current view. <code>context_details</code> then connects supporting material to the original capture.</p>
<p>Native navigation also stores complete capture/selection digests in immutable private reader references. The Agent copies the returned reference; the CLI still verifies the complete digests, selection and cursor on every page. SHA256 itself is not shortened. A <code>first_read_command</code> starts a selection; it does not establish that all required sources were read.</p>
<pre><code class="language-bash"># Copy the original recovery.reference_file from current returned navigation.
Expand All @@ -183,7 +188,9 @@ <h2 id="native-path">When enabled, the default output is a reading entrypoint</h
--select &quot;$POINTER_A&quot; --select &quot;$POINTER_B&quot;
</code></pre>
<p>A continuation reference pins its selection: follow its <code>next_command</code> to EOF and return to the original recovery reference to change Pointers. Very small budgets may retain the explicit file/digest interface. The teaching measurements above use that compatible interface and retain their original conditions.</p>
<p>Saved-file continuity and what the model currently retains are separate facts. Verifiable files do not establish that the model remembers every original passage.</p>
<h3 id="file-and-model">What was saved, and what the model has read</h3>
<p>The delta codec answers: <strong>can the verified old file reconstruct the exact current file?</strong> The native <code>captured_file</code> path verifies the complete saved baseline, version and scope. It does not require the model to have read the old file, reached a selected page’s EOF or sent an ACK. Each baseline is itself a complete version, so the model need not replay a chain of deltas first.</p>
<p>Progressive reading answers a different question: <strong>which facts does this decision need?</strong> In the voice illustration, suppose the next continuation adds sample 3 while the privacy constraint remains unchanged. Consider a missed-read counterexample: the Agent skipped the required privacy constraint, or can no longer establish it after compaction. Before sending audio externally, it must recover <code>/goal/constraints</code> through the <strong>current</strong> entrypoint and honor the existing authorization boundary. It can read that fact directly, without first draining the old baseline. A saved file or an unchanged field does not replace the necessary read.</p>
<h2 id="recovery">Recover missing context while preserving the original work</h2>
<p>After host compaction, a subsequent work Turn builds a new complete baseline. Original goals, requirements and sources remain available for necessary reads.</p>
<p>If compaction, missing pages or truncated output interrupt an unfinished Turn, recover missing facts from its original capture while retaining task, effect and settlement identity. If a voice result was already sent but its receipt was lost, recovering context must not become sending the result again.</p>
Expand All @@ -199,7 +206,7 @@ <h2 id="evidence">What the measurements establish</h2>
<p>The example separates three mechanisms: <strong>avoid repeatedly moving history not currently needed, combine reads that belong together, and avoid retransmitting unchanged verified structures.</strong> Complete sources, requirements and recovery connect them.</p>
<p>Reader figures include actual CLI page metadata; local path length affects a small amount of framing. Projection figures compare capture bodies; the cycle table compares codec output. The reproduction script checks these distinct measurements and exact reconstruction.</p>
<p>Real long-running tasks must also count necessary later reads, recovery, cache hits, model input/output, tool calls, waiting and human attention. Effectiveness depends on constraints understood, decisions made and accepted outcomes. This synthetic example measures the mechanical path; real model benefit still needs comparable-task evidence.</p>
<p>Implemented scope includes complete sources, file entrypoints, batch selection, index depth, applicable acceptance layering, exact sharing, cycle deltas and recovery. Broader decision-stage candidate, preference and Explore delivery and C1's universal input convergence remain unfinished. Supported Codex sessions default on without a saved preference. Disable in Settings → This machine → Capabilities → Differential context → Codex; saved off survives upgrade. A command or new benchmark trial can use <code>--context-delivery off</code>. Trials do not inherit the machine switch, and existing frozen trials are not rewritten. Saving settings, exact hook/configuration setup and actual adoption remain separate checks; unavailable hooks retain full delivery. Ordinary CLI, unsupported hosts and non-heartbeat benchmarks retain their existing full paths. Final 2.2 release qualification follows the exact release version.</p>
<p>2.2.0 ships complete sources, file entrypoints, batch selection, index depth, applicable acceptance layering, exact sharing, cycle deltas and recovery. Broader decision-stage candidate, preference and Explore delivery and consistency across all entrypoints remain unfinished. Disable in Settings → This machine → Capabilities → Differential context → Codex; saved off survives upgrade. A command or new benchmark trial can use <code>--context-delivery off</code>. Trials do not inherit the machine switch, and existing frozen trials are not rewritten. Under the default policy, ordinary CLI, unsupported hosts and non-heartbeat benchmarks retain their full paths; an explicit unsupported on request is rejected. Unavailable hooks use full delivery. Saving configuration, actual installation and model adoption remain separate checks.</p>
<h2 id="reproduce">Read the same material yourself</h2>
<p><a href="example.py">example.py</a> generates this complete synthetic voice task and invokes the existing reader, progressive projection and delta owners. It checks selected values, directory addresses, all ten requirements, shared references and complete recovery. It registers no Goal, admits or settles no Turn, and calls no model or speech service.</p>
<p>Prepare the original measurement checkout, <code>a4a0fad889d91cba0d945ce658788bdb76ba351e</code>, and its compatible dependencies. Run from that checkout’s root, substituting the downloaded program path. The output directory must be empty.</p>
Expand All @@ -208,6 +215,6 @@ <h2 id="reproduce">Read the same material yourself</h2>
</code></pre>
<p>Generated <code>capture.json</code> retains all 80 history entries. <code>projection.json</code> and <code>required-context.json</code> hold the complete/necessary views; <code>cycle-base.json</code> and <code>cycle-delta.json</code> hold cycle encodings; <code>manifest.json</code> pins files and digests. Production reads use currently returned paths, never copied teaching fields or another capture’s array indexes.</p>
<p>The <a href="measurements.json">original measurement record</a> pins this article’s figures. Running on other source can check its mechanisms but cannot rewrite the original observation. Local path length also affects page framing bytes. Understanding this example requires no new research run.</p>
<p>Sources: <a href="https://github.com/loopx-project/loopx/blob/0e78a19c277f4ca3d44313787162bc0444065172/docs/reference/required-work-context.md">complete-delivery contract</a>, <a href="https://github.com/loopx-project/loopx/blob/0e78a19c277f4ca3d44313787162bc0444065172/loopx/control_plane/quota/progressive_context.ts">progressive projection</a>, <a href="https://github.com/loopx-project/loopx/blob/0e78a19c277f4ca3d44313787162bc0444065172/loopx/control_plane/quota/context_selection.ts">selection/index</a>, <a href="https://github.com/loopx-project/loopx/blob/0e78a19c277f4ca3d44313787162bc0444065172/loopx/control_plane/quota/context_delivery.ts">delta/recovery</a>. The example ran on <code>a4a0fad</code>; those three core owners are byte-identical in <code>0e78a19</code>. Native final delivery also accounts for references and later reads, beyond codec output.</p>
<p>Sources: <a href="https://github.com/loopx-project/loopx/blob/v2.2.0/docs/reference/required-work-context.md">complete-delivery contract</a>, <a href="https://github.com/loopx-project/loopx/blob/v2.2.0/loopx/control_plane/quota/progressive_context.ts">progressive projection</a>, <a href="https://github.com/loopx-project/loopx/blob/v2.2.0/loopx/control_plane/quota/context_selection.ts">selection/index</a>, <a href="https://github.com/loopx-project/loopx/blob/v2.2.0/loopx/control_plane/quota/context_delivery.ts">delta/recovery</a>. The example ran on <code>a4a0fad</code>; its three measured core owners are byte-identical in <code>0e78a19</code>. The implementation links above are pinned to released <code>v2.2.0</code>; the old numbers are not a post-release rerun. Native final delivery also accounts for references and later reads, beyond codec output.</p>
<nav class="article-route" aria-label="Continue reading"><p><a href="../typescript-control-plane-refactor/">TypeScript: repairing semantics</a> · <a href="../edgebench-feedback-and-memory/">EdgeBench: did mechanisms improve outcomes?</a></p></nav></article></div></main>
<footer class="site-footer"><a class="brand" href="../../">LoopX</a><p>Keep work moving. Keep people in control.</p><a href="#main" aria-label="Back to top">↑</a></footer></body></html>
Loading
Loading