Skip to content

Headless user input truncated in generation context; need a non-generative completeness check #979

Description

@Thomasyann

Description

In agy 1.1.27 on Windows, two completed headless runs preserved the full submitted user prompt in the native source step, but recorded a truncated prompt in the generation-context metadata. Both model responses also reported incomplete context.

We need a supported way to deliver a complete text dossier and verify its presence after context conversion, before any model generation is triggered.

Environment

  • Official Antigravity CLI 1.1.27, Windows, launched from PowerShell.
  • Native Google account subscription authentication, with additional-credit usage disabled.
  • Models: gemini-3.8-flash-high and gemini-3.1-pro-high; effort high.
  • One fresh process and conversation per model.
  • Input/output format: stream-json.
  • A single {"event":"user","message":{"content":"..."}} event, followed by closing stdin.
  • No conversation resume, no tool execution, no MCP access or delegation during these runs.

Observed results

All lengths below are UTF-8 byte lengths.

Measurement Flash run Pro run
Submitted user prompt 452639 452633
Prompt in native generation metadata 192024 192025
Exact submitted-prefix bytes preserved 191984 191985
Native truncation marker <truncated 261061 bytes> <truncated 261052 bytes>

The submitted dossier's terminal sentinel was absent from both generation-context prompts.

The local evidence comes from the existing conversation SQLite data:
CortexStepGeneratorMetadata.chat_model.message_prompts[source=1].prompt.
The native transcript_full.jsonl user entry agrees with that truncated content and adds a display note. Field mapping was checked against protobuf descriptors embedded in the installed binary. This is local client evidence, not a claim of a server-signed receipt.

The native marker's byte count is not equated with omitted bytes of the original prompt, because the client adds wrappers.

As historical positive controls, two earlier prompts of 172807 and 172801 bytes are present in full in their corresponding native generation-context metadata. No extra generation was run to investigate this issue.

Expected behavior / requested official guidance

Please identify a supported CLI mechanism that:

  1. Accepts the complete text input without truncation, or rejects it before generation if it cannot be preserved.
  2. Exposes the final converted input, or a verifiable completeness receipt, before the model call, with a way to stop on mismatch.
  3. Works with the existing native subscription route, disabled additional credits, and tools disabled.

The documented PreInvocation payload does not expose final converted messages, and its documented output provides injectSteps rather than an abort decision. Does a supported mechanism exist at a later pre-request stage?

Is there an official user-facing control for the per-user-message limit, or a supported complete-document input mode? The installed binary contains the descriptor name max_tokens_per_user_input_step, but no private setting has been changed and no effective numeric threshold is asserted.

Relevant documentation: headless, hooks. Related but different feature request: #743.

Reproduction availability

The measurements describe the existing runs above. The private input, native databases and full logs are intentionally not attached. No public synthetic reproducer has been executed, and no fix has been verified.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

bugSomething isn't workingcomp:conversationsManaging Conversations, Workspace Scoping, Resuming sessions, Branching

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions