Skip to content

Add bounded output continuation contracts - #2038

Merged
Aaronontheweb merged 1 commit into
goal/pit-of-success-structured-workspacefrom
goal/pit-of-success-output-contracts
Aug 20, 2026
Merged

Add bounded output continuation contracts#2038
Aaronontheweb merged 1 commit into
goal/pit-of-success-structured-workspacefrom
goal/pit-of-success-output-contracts

Conversation

@Aaronontheweb

@Aaronontheweb Aaronontheweb commented Aug 20, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • Add the Core tool_output_read tool for bounded continuation of a truncated result.
  • Store each redacted spill under a hashed call-id filename in the current immutable session.
  • Add generated oneOf schemas for reminder delivery and skill management modes.
  • Reject missing, unknown, conflicting, or incomplete conditional argument branches before tool execution.
  • Restore model-visible descriptions from record properties without adding conditional keywords to single-shape tools.
  • Update the operations skill and the oversized-output eval for the structured continuation path.

Security

  • The continuation tool accepts an opaque call ID, not a filesystem path.
  • The resolver rejects traversal, controls, missing identifiers, cross-session access, and symlinked storage roots.
  • The spill stores redacted output before any continuation read.
  • A successful continuation records no file activity and cannot change the project context.
  • The conditional-schema attribute and spill resolver remain internal APIs.

Validation

  • Release build: 0 warnings and 0 errors.
  • Full solution: 7,741 passed, 16 expected skips, and 0 failed.
  • Focused actor output and schema tests: 237 passed and 0 failed.
  • Core exposure snapshot: 14 tools and 17,407 serialized UTF-8 bytes.
  • Strict OpenSpec, headers, Bash syntax, diff checks, and changed-file Slopwatch passed.
  • The changed files contain no raw production logs or production-derived identifiers.

Eval evidence

  • The complex_large_shell_output_spill case now requires both shell_execute and tool_output_read.
  • The case still requires the exact deterministic value from outside the inline window.
  • The prompt does not name the continuation tool.
  • Eval harness Bash syntax passed.
  • No hosted model eval ran for this PR.

Comment on lines +55 to +61
foreach (var value in callId)
{
if (char.IsControl(value)
|| char.IsWhiteSpace(value)
|| value is '/' or '\\')
return false;
}
Comment on lines +135 to +143
foreach (var attribute in attributes)
{
if (attribute.AttributeClass?.Name == "DescriptionAttribute"
&& attribute.ConstructorArguments.Length > 0
&& attribute.ConstructorArguments[0].Value is string description)
{
return description;
}
}
Comment on lines +240 to +259
foreach (var argument in attribute.NamedArguments)
{
if (argument.Key != name || argument.Value.Kind != TypedConstantKind.Array)
continue;

var result = ImmutableArray.CreateBuilder<string>(argument.Value.Values.Length);
foreach (var value in argument.Value.Values)
{
if (value.Value is not string parameterName)
{
values = [];
return false;
}

result.Add(parameterName);
}

values = result.MoveToImmutable();
return true;
}

try
{
directory = Path.GetFullPath(Path.Combine(sessionDirectory!, ToolCallsSubdirectory));
{
directory = Path.GetFullPath(Path.Combine(sessionDirectory!, ToolCallsSubdirectory));
var fileName = Convert.ToHexString(SHA256.HashData(Encoding.UTF8.GetBytes(callId!))) + ".log";
path = Path.GetFullPath(Path.Combine(directory, fileName));
@Aaronontheweb

Copy link
Copy Markdown
Collaborator Author

Sanitized hosted follow-up from the completed top-of-stack rollout proof (#2039): the spilled-output continuation scenario passed 0/5. All five trials used shell, one searched the tool catalog, and none loaded or called tool_output_read. The deterministic spill contract tests remain green; this result identifies a remaining discoverability and agent-selection problem. The assertion was not weakened. Raw transcripts and environment details are not published.

@Aaronontheweb
Aaronontheweb force-pushed the goal/pit-of-success-output-contracts branch from dcbfcbf to 609355b Compare August 20, 2026 07:14
@Aaronontheweb
Aaronontheweb merged commit ecf70fc into dev Aug 20, 2026
23 checks passed
@Aaronontheweb
Aaronontheweb deleted the goal/pit-of-success-output-contracts branch August 20, 2026 08:29
@Aaronontheweb Aaronontheweb added enhancement New feature or request tools Issues related to agent tools: file_read, web_search, shell_execute, image processing, etc. evals LLM efficacy evals for Netclaw reminders Reminder scheduling, execution, and history skills Skill loading, handling, authoring, indexing, and evals. labels Aug 20, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request evals LLM efficacy evals for Netclaw reminders Reminder scheduling, execution, and history skills Skill loading, handling, authoring, indexing, and evals. tools Issues related to agent tools: file_read, web_search, shell_execute, image processing, etc.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant