Is session.idle a causal accounting/event-completeness boundary in the native/headless protocol?
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 5/5
- Thời gian dự kiến
- Hơn một tuần
- Mức phù hợp với người mới
- 10/100
- Loại issue
- Tài liệu
- Độ rõ ràng
- Khá rõ ràng
- Mức độ hoạt động
- Sôi nổi
- Lĩnh vực
- backend-api-design
Hướng nghiên cứu
Start from the SDK documentation that defines session.idle semantics and the generated event surface (assistant.usage, session.usage_info, session.usage_checkpoint, session.compaction_start/complete, assistant.turn_end, assistant.idle) in github/copilot-sdk; trace where those events are produced and where session.idle is enqueued for CLI 1.0.92-3 (and 1.0.91 if semantics differ). Read issue #4743 only for contrast — it covers ACP prompt completion, which this question explicitly excludes. Done means a versioned YES / NO / UNSPECIFIED statement about causal emission ordering, plus any stronger supported RPC, event, watermark or barrier if the answer is NO or UNSPECIFIED.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
We integrate GitHub Copilot CLI through the public Copilot SDK and need a deterministic session/accounting completion boundary. This is a protocol-contract question, not a request for a timing workaround.
For Copilot CLI 1.0.92-3 (bundled by github/copilot-sdk v1.0.17-preview.3, commit ef04633), the current public documentation describes session.idle as the point where the agent has finished all processing, is ready for the next message, and the turn is fully complete.
The generated event surface also includes events such as:
- assistant.usage
- session.usage_info
- session.usage_checkpoint
- session.compaction_start
- session.compaction_complete
- assistant.turn_end
- assistant.idle
- session.idle
The remaining question is specifically about causal event emission ordering.
For CLI 1.0.92-3, and if the semantics differ please also note CLI 1.0.91:
When a client observes session.idle on the native/headless protocol stream, is it guaranteed that every session event/notification attributable to work completed before that idle point has already been generated and enqueued onto the ordered client transport?
In particular, after the observed session.idle, can any event attributable to the preceding work still legitimately be generated/emitted that changes usage/accounting or other completion-relevant state, including assistant.usage, session.usage_info, session.usage_checkpoint, or compaction-related accounting?
A concise versioned answer in one of these forms is sufficient:
YES, guaranteed for version X — before session.idle is emitted, all producers relevant to the preceding work are finalized and all corresponding events are queued into the ordered transport domain; no accounting/completion-relevant event attributable to that preceding work can legitimately be emitted afterward.
NO — session.idle guarantees that agent processing has stopped / the turn is complete in the documented sense, but it is not an event/accounting emission fence.
UNSPECIFIED / unsupported contract — the implementation may currently exhibit an ordering, but SDK clients must not depend on that ordering.
If the answer is NO or UNSPECIFIED, is there another currently supported native/headless RPC, event, watermark, or barrier that provides the stronger property?
We are specifically not treating sleeps, quiet periods, repeated polling, local queue-empty observations, or ordinary JSON-RPC response ordering as substitutes for such a guarantee.
The distinction matters because FIFO transport can prove ordering for frames that have already entered the transport, but cannot by itself prove that an upstream/background producer will not subsequently create another event attributable to the preceding work.
A version-specific semantic statement is sufficient; no proprietary backend implementation details are required.
This question is related to, but intentionally narrower than, github/copilot-cli#4743: that issue concerns ACP prompt completion. Here the question is specifically about the existing native/headless session.idle contract used by the public Copilot SDK.
- Ngôn ngữ chính
- Java
- Star
- 10.7k
- Fork
- 1.5k
- Chỉ số merge pull request
- Không có pull request nào được merge trong 30 ngày
Chuẩn bị môi trường
- Không có Dockerfile hay tệp Docker Compose
- Không có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của github/copilot-sdk
-
Rust: ElicitationRequest drops the tool call id from elicitation.requestedCó thể làm lại được Pull request cho issue này đã bị đóng mà không được merge. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
github/copilot-sdk#2900 ·
-
Bump zod version to 4.6.6.Đang mở
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 84/100
github/copilot-sdk#2876 · 1 bình luận · 1 reaction ·
-
Python ModelLimits drops max_output_tokens from model metadataCó thể làm lại được Pull request cho issue này đã bị đóng mà không được merge. Đang mởbug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
github/copilot-sdk#2798 · 1 bình luận ·
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 65/100
github/copilot-sdk#2759 ·
-
docs/AGENTS.md is repo authoring guidance, but everything in docs/ gets publishedCó thể làm lại được Pull request cho issue này đã bị đóng mà không được merge. Đang mởdocumentation
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 85/100
github/copilot-sdk#2758 ·
Tất cả issue của github/copilot-sdk
Issue tương tự
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
ls1intum/thesis-management#1473 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
LunaDeerMC/Dominion#301 · 1 bình luận ·
-
[FEATURE] Expose external refresh, node-level translog and warmer statsCó thể đã có người làm Có pull request liên kết đang mở hoặc đã được merge. Đang mởuntriaged
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
opensearch-project/opensearch-prometheus-exporter#680 ·
Maintainer thường phản hồi trong vòng 2 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 85/100
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 66/100
Maintainer thường phản hồi trong vòng 2 ngày