Skip to content

feat: report which captured variables were truncated in pause point responses - #2052

Merged
hatayama merged 3 commits into
feat/pause-point-feedback-r13-integrationfrom
feat/pause-point-truncation-metadata
Jul 29, 2026
Merged

hatayama merged 3 commits into
feat/pause-point-feedback-r13-integrationfrom
feat/pause-point-truncation-metadata

Conversation

@hatayama

@hatayama hatayama commented Jul 29, 2026 •

Copy link
Copy Markdown
Owner

Summary

  • Pause point hit/status responses now expose per-variable Truncated, plus top-level TruncatedVariableNames / TruncatedVariableCount for variables dropped by the capture count cap (names capped at 20; count is exact).
  • Existing CapturedVariablesTruncated meaning is unchanged (any truncation during capture).
  • When a captured-variable name filter matches nothing, the CLI also sets a human-readable Warning (alongside the existing machine-readable filter flags).
  • Bonus: drop [Description] from CompileWaitTimeoutSeconds so FirstPartyToolSchemaMetadataTests stays green (long-form guidance belongs in skill files).

User Impact

Agents can see which captured values were clipped and which names the count cap discarded, instead of a sticky overall truncated flag after name filters. A zero-match name filter also surfaces a readable Warning so it is harder to misread as a broken capture.

Test plan

  • ULOOP_PROJECT_RUNNER_PATH=dist/darwin-arm64/uloop-project-runner uloop compile — 0 errors / 0 warnings
  • scripts/check-go-cli.sh — exit 0 (includes new name-filter Warning test)
  • EditMode suite — 0 failures (2411 tests; 7 skipped pre-existing)
  • New collector tests for count-cap names/count and empty truncation metadata
  • CI on this integration-base child PR may not run; local results above are the verification

Notes

Child PR targeting feat/pause-point-feedback-r13-integration (round 13–14 feedback series, PR-3).

Review in cubic

hatayama and others added 2 commits July 29, 2026 12:41
…esponses

CapturedVariablesTruncated alone stayed sticky after name filters whenever
any value was clipped, so count-cap drops were invisible. Expose per-variable
Truncated plus TruncatedVariableNames/Count, and surface a Warning when a
name filter matches nothing.

Co-authored-by: Cursor <cursoragent@cursor.com>
First-party schema properties must not carry DescriptionAttribute; long-form
guidance belongs in skill files (FirstPartyToolSchemaMetadataTests).

Co-authored-by: Cursor <cursoragent@cursor.com>
@coderabbitai

coderabbitai Bot commented Jul 29, 2026 •

Copy link
Copy Markdown
Contributor

Review Change Stack

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: 8648fac7-d878-46ad-95cd-66715abdc263

📥 Commits

Reviewing files that changed from the base of the PR and between 2cb7e44 and 60908ff.

📒 Files selected for processing (20)
  • Assets/Tests/Editor/PausePointCaptureModeTests.cs
  • Assets/Tests/Editor/PausePointStatusResponseContractTests.cs
  • Assets/Tests/Editor/PausePointTests.cs
  • Assets/Tests/Editor/SourcePausePointCapture/SourcePausePointCaptureTests.cs
  • Assets/Tests/Editor/SourcePausePointCapture/SourcePausePointVariableFormatterTests.cs
  • Packages/src/Editor/FirstPartyTools/Compile/CompileSchema.cs
  • Packages/src/Editor/FirstPartyTools/PausePoint/PausePointTools.cs
  • Packages/src/Editor/FirstPartyTools/PausePoint/SourcePausePointConstants.cs
  • Packages/src/Editor/FirstPartyTools/PausePoint/SourcePausePointVariableCollector.cs
  • Packages/src/Editor/FirstPartyTools/PausePoint/SourcePausePointVariableFormatter.cs
  • Packages/src/Editor/Infrastructure/Api/PausePointStatusBridgeCommand.cs
  • Packages/src/Runtime/PausePoints/UloopCapturedVariable.cs
  • Packages/src/Runtime/PausePoints/UloopPausePointCapturedVariableFrame.cs
  • Packages/src/Runtime/PausePoints/UloopPausePointEntry.cs
  • Packages/src/Runtime/PausePoints/UloopPausePointRegistry.cs
  • Packages/src/Runtime/PausePoints/UloopPausePointSnapshot.cs
  • cli/project-runner/internal/projectrunner/pause_point_captured_variable_names_filter.go
  • cli/project-runner/internal/projectrunner/pause_point_captured_variable_names_filter_test.go
  • cli/project-runner/internal/projectrunner/pause_point_types.go
  • tests/contracts/pause_point_status_response_contract.json

📝 Walkthrough

Walkthrough

Pause-point capture now records discarded-variable names and counts, propagates per-variable truncation flags through runtime and API models, and exposes the metadata to CLI consumers. Collection continues scanning after the capture cap, while CLI filtering suppresses misleading warnings for empty snapshots.

Changes

Pause-point truncation metadata

Layer / File(s) Summary
Truncation contracts and state propagation
Packages/src/Runtime/PausePoints/*, Packages/src/Editor/Infrastructure/Api/*, cli/project-runner/internal/projectrunner/pause_point_types.go, tests/contracts/*
Runtime snapshots, captured-variable models, bridge responses, CLI payloads, and JSON contracts now include per-variable truncation, truncated names, and truncated counts.
Capture and formatting behavior
Packages/src/Editor/FirstPartyTools/PausePoint/*
Variable collection continues after the count cap to count discarded entries and report limited names; formatting records truncation on each affected variable.
CLI filtering behavior
cli/project-runner/internal/projectrunner/pause_point_captured_variable_names_filter.go, ..._test.go
No-match warnings are emitted only when the pre-filter snapshot contains captured variables.
Validation and compatibility updates
Assets/Tests/Editor/*, Assets/Tests/Editor/SourcePausePointCapture/*, Packages/src/Editor/FirstPartyTools/Compile/CompileSchema.cs
Tests and fixtures use updated constructors and assert truncation metadata; compile-schema guidance documentation is revised.

Estimated code review effort: 3 (Moderate) | ~25 minutes

Sequence Diagram(s)

sequenceDiagram
  participant SourcePausePointVariableCollector
  participant UloopPausePointRegistry
  participant UloopPausePointEntry
  participant PausePointStatusResponse
  participant CLI
  SourcePausePointVariableCollector->>UloopPausePointRegistry: capture entries and truncation metadata
  UloopPausePointRegistry->>UloopPausePointEntry: record captured variables and discarded-variable details
  UloopPausePointEntry->>PausePointStatusResponse: expose snapshot metadata
  PausePointStatusResponse->>CLI: serialize truncated names, count, and per-variable flags
  CLI->>CLI: filter names and conditionally emit warning
Loading

Possibly related PRs

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/pause-point-truncation-metadata

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

pause-point-status applies the filter without a hit gate, so an unhit
marker looked like a name miss and the Warning blamed ResolvedMethod.
Keep the machine-readable flags unchanged; warn only when the snapshot
already had variables, and drop the ResolvedMethod reference.

Co-authored-by: Cursor <cursoragent@cursor.com>
@hatayama
hatayama merged commit b5e8f83 into feat/pause-point-feedback-r13-integration Jul 29, 2026
1 of 2 checks passed
@hatayama
hatayama deleted the feat/pause-point-truncation-metadata branch July 29, 2026 03:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant