ข้ามไปยังเนื้อหา

Relationship to pi

เนื้อหานี้ยังไม่มีในภาษาของคุณ

xcsh is derived from the open-source pi coding agent and adds F5 Distributed Cloud resource workflows, integrations, packaging, and project-specific governance.

The last proven sync with can1357/oh-my-pi was d350ea60e on April 9, 2026. The first-pass security and shared-runtime audit reviewed the divergent line through b2f25dbfe1 on September 5, 2026. The second-pass TUI and renderer audit extends that lineage through the frozen tip 6d3bc569d16cd7351073eaa767caed51021befbb on September 6, 2026. The third-pass terminal-interaction audit extends the reviewed lineage through a1b254047d12e143b7c6011536e918c6c35c5906, also frozen on September 6, 2026. The fourth-pass hyperlink, login-launch, and transcript-copy audit extends the reviewed lineage through 6e48b5ce564aa1d7eff60ffe92748f451385ad7d, frozen on September 7, 2026. Because the repositories no longer share a usable linear history, accepted changes are semantic ports with adapted regressions rather than merges or ancestry-based cherry-picks.

The four implementation waves accepted these upstream pull requests:

WaveUpstream pull requestsxcsh delivery
Provider and prompt security#2147, the opaque-thinking portion of #3239, #7067, and #8727#3710
Configuration and execution security#7362 and #5636#3720
Core runtime#7743, #10415, #10523, #10325, and #10550#3723
Terminal and platform#10613, #10997, #10492, #9233, and #7634#3724
TUI and renderer crash containment#1989, #4497, #4529, #2047, #5837, and #6788#3743
Herdr, signals, and mouse interaction#7810, #8433, #11054, #4121, #3463, #3402, and #11045#3748
Hyperlinks, login launch, and copy picker#10196, #10606, #11002, #10922, #11086, #5887, and #6282#3758

These ports protect provider-bound secrets and compaction boundaries, enforce exact-case environment references and complete protocol tails, repair Responses replay and shared MCP results, improve rate-limit and retained-string behavior, chain directory completion, extend power assertions across supported platforms, and harden stats persistence and network exposure. The source pull requests remain attributable to can1357/oh-my-pi; the xcsh deliveries link the exact commits and regression evidence.

The second-pass renderer work normalizes malformed task result data, accepts only strings at path boundaries, bounds ANSI-heavy rows before width measurement, and treats terminal disconnect cleanup as best effort before SIGHUP. Upstream #5438 is equivalent because Container.render() already isolates child-render exceptions; its richer fallback display remains deferred.

The third-pass work adds a shared fullscreen/mouse framework, applies it to the session picker, extension dashboard, and debug-log viewer, and keeps terminal state restoration idempotent across normal exit, resize, disconnect, and emergency cleanup. Herdr pane identity now participates in multiplexer redraw decisions, while notifications use validated argv-only herdr notification show delivery with terminal fallback. Interactive and signal exits share one draft-preserving teardown, and POSIX Ctrl-Z suspends only the xcsh process with SIGSTOP.

The fourth-pass work applies an immutable startup capability snapshot to off, auto, and always hyperlink policy; safely renders and physically wraps OSC 8 spans; launches local Vertex login through an HTTP(S)-only opener while retaining manual recovery; and projects the bounded copy picker directly from xcsh SessionMessageEntry history. The semantic ports correspond to upstream merge commits db2f55888b9f500b51010d7958a9cc8712e19f5c, 4d13034f5dc70e93a6dad502ea7313792480760e, 72767b81bd2911ebd650cfd0fdd5f92afc7470a6, 4a56732e45c6b13b01e72aeaab113d0a257df0bd, 43a2913d1ee2e88ceff0851a9ed9d0345f12d8c6, c081dedd3a696c872fd818f89d2b8c6c81a45b1e, and d1979782e7851b46451e956a5855d69e7781a5f5.

Third-pass candidateDisposition
Herdr #7810, #8433, and #11054Ported: scrollback-safe rendering, resize behavior, and notification delivery
Herdr #10356 and #10479Equivalent: explicit HERDR_KITTY_GRAPHICS gating and synchronized rendering already cover the behavior
Herdr #7554Not applicable: xcsh uses its compiled executable and dedicated launcher
Signal #4121 (73a12c7e)Ported: shared idempotent teardown and one-shot draft recovery
Signal #3463 (8506fbdf)Ported: interactive self-SIGSTOP; deliberate background process-group SIGTSTP remains unchanged
Mouse #3402 and #11045Ported: shared SGR parsing/routing and horizontal-wheel rejection
cffb804d, 27ed9f7a, and log-viewer portion of 5fbe8876Ported to the session picker, extension dashboard, and debug-log viewer
7eca774c and raw-SSE portion of 5fbe8876Not applicable: those surfaces do not exist in xcsh
Plan Review 2976847eDeferred: xcsh retains its compact plan-review selector
MCP, OpenCode, and unrelated renderer/UI changesExcluded from this pass

xcsh retains its own:

  • F5-scoped packages, prompts-as-files, tool factories, and capability discovery;
  • SQLite multi-credential storage, multi-account authentication, and provider routing;
  • MCP, SSH, F5 Distributed Cloud, Office, and browser integrations;
  • Bun-first runtime, session semantics, release pipeline, branding, and governance.

Public interfaces use prerelease clean breaks. In this wave, MacOSPowerAssertion/MacOSPowerAssertionOptions became PowerAssertion/PowerAssertionOptions without aliases, and power.sleepPrevention was added with an idle default.

Upstream workflows, branding, release machinery, generated model catalogs, compatibility shims, new packages, and large unrelated subsystems are excluded. The security-scan subsystem in #7048 and the native minimizer in #2176 remain deferred. The range-dashboard optimization in #9327 and earendil-works/pi-only fullscreen transcript, mouse, clipboard, and renderer subsystems also remain outside this campaign. MCP, OpenCode, Herdr, #10625, and #10491 were explicitly excluded from the second-pass batch; the Herdr work is now covered by the third pass. Commits after the new frozen source tip require a later audit.

Trace the affected module and compare it with the pinned upstream lineage. A generic agent-loop defect may belong upstream; an xcsh resource command, integration, or packaging change belongs here.

Keep upstream license notices and document imported changes. Avoid copying a patch blindly across diverged modules; port the behavior with tests against the current xcsh architecture.

An upstream commit is evidence of intent, not a patch that is safe to apply unchanged. Freeze the reviewed upstream commit, identify the xcsh modules that implement the same contract, port the behavior with a regression test, and record deliberate differences. A candidate remains excluded until its prerequisites and product fit are reviewed; omission from one batch does not imply acceptance or rejection in a later audit.