Script
Here is today's Pi Project Update for Sunday September 13th. A newly closed tracker report today identifies a visible streaming bug in Pi 0.85.1: the first token of a model’s thinking text can appear twice in streaming interfaces. The report traces this to the initial message snapshot sharing mutable content with the live output object. By the time a user interface reads that snapshot, the first thinking delta may already be present, then gets replayed again. The stored final message is unaffected, but users can briefly see duplicated text such as “TheThe user asks.” A proposed fix copies the content at the start event, and was locally verified across several providers.
Today’s activity also highlights a Windows-specific GitHub Copilot reliability problem. Pi’s Node and undici-based OAuth refresh request reportedly receives GitHub’s 403 anti-scraping response, even though the same credentials and endpoint work through PowerShell, Git for Windows curl, and a browser on the same machine. The likely distinction is the TLS or HTTP fingerprint of Node’s networking stack. Until there is a product-level workaround, affected users may need the impractical manual step of refreshing a token externally and placing it into Pi’s authentication file. [1]
A separate interface report says mouse input does not reach content inside Pi’s ScrollView component. In fullscreen mode, that can leave transcript components effectively unclickable: wheel movement scrolls the outer viewport, but embedded interactive components never receive mouse events. The proposed change forwards events to the mapped content row while retaining existing scroll chaining behavior. [2]
Finally, yesterday’s Vertex AI report carries broader workflow implications. Gemini 3 Flash models reject Pi’s requested MINIMAL thinking level, including when thinking is disabled. That can make automatic and manual context compaction fail outright in workflows that reuse the session model for summarization. The suggested safeguard is to use LOW instead, or omit unsupported thinking settings.
The common trend is that Pi’s core agent features increasingly depend on small but consequential integration details: immutable streaming events, transport fingerprints, input routing, and provider-specific reasoning controls. Thank you for listening to Pi Project Update from The Daily FM. See you tomorrow!
- earendil-works/pi: development activity
...ope "Current Folder" it is fine: the parent is not in the listing, so the child is a root. ### How? (optional) In `threaded` mode, only nest when parent and child share a `cwd`; otherwise treat the child as a root. One condition in `buildSessionTree… #9546 GitHub Copilot OAuth refresh returns 403 scraping response with Node/undici (closed 2026-09-13) ### What happened? On Windows, pi fails to refresh the GitHub Copilot OAuth credential: Error: OAuth refresh failed for github-copilot: 403 Forbi
- earendil-works/pi: development activity
...ut the tree is a lineage tree. The two groupings agree as long as a session never leaves its project. As soon as one does, the indentation claims "same project, older conversation" when that is no longer true. Repro (this is what my `/move-session` extension does: rewrite the header `cwd`, move the file, leave `parentSession` alone): ``` before └─ A [cwd projectA] └─ B [cwd projectA] after moving B into projectB, scope "All" └─ A [cwd projectA] └─ B [cwd projectB] <- nested across working directories ``` In scope "Current Folder" it is fine: the parent is not in the listing, so the child is a root. ### How? (optional) In `threaded` mode, only nest when parent and child share a `cwd`; otherwise treat the child as a root. One condition in `buildSessionTree… #9546 GitHub Copilot OAuth refresh returns 403 scraping response with Node/undici...