Skip to content

test(skills): preserve native Pi loading and session lifecycle - #322

Merged
tt-a1i merged 6 commits into
openpi-dev:mainfrom
sowen1023:codex/feat-316-inline-skill-references
Aug 31, 2026
Merged

test(skills): preserve native Pi loading and session lifecycle#322
tt-a1i merged 6 commits into
openpi-dev:mainfrom
sowen1023:codex/feat-316-inline-skill-references

Conversation

@sowen1023

@sowen1023 sowen1023 commented Aug 31, 2026

Copy link
Copy Markdown
Contributor

Problem

Refs #282, #316, #317.

Scope update, 2026-08-31: following the accepted native-Pi decision, this PR no longer adds inline $skill invocation or hidden Skill-body recovery. The old candidate correctly implemented the earlier requirement; the maintainer has now narrowed that requirement.

Value

Keep Pi as the owner of Skill discovery, invocation, normal history and compaction. Avoid a separate OpenPI body cache, provider-only projection and recovery lifecycle. Users explicitly invoke /skill:name; models can read discovered Skills using the ordinary read tool.

Approach

  • Retire the unmerged inline Skill extension, its autocomplete/parser, immutable snapshots, context overlays, compaction reanchoring and dedicated old-contract tests.
  • Reuse native Pi as-is: no alias, new loader, recovery marker, setup switch or runtime module.
  • Record the scope in Decision 0002 and explain usage and limits in README.
  • Add real Pi Session regressions that load the whole OpenPI package with isolated fixture Skills and a deterministic faux provider.
  • Relative to current main ba550bc1d918147c326840276eff018b505ed9d8, production extensions, package manifest and lockfile are unchanged. The net PR is documentation and tests. The removal is relative to the previous unmerged candidate, not a removal from shipped main.

Validation

  • Node 24.18.0, Bun 1.3.14, Pi 0.84.1.
  • bun run check: passed (configuration/discipline checks, format, lint, typecheck).
  • Native Skill suite: 10 passed, covering metadata/read, explicit-only Skills, slash expansion and persisted history, direct and streaming steering/follow-up, unknown/missing files, native compaction, no automatic body recovery, and explicit rereading of changed instructions.
  • Red/green: with the old extension still loaded, the new ordinary-$skill test fails because hidden bodies are injected; after removal, the complete new suite passes.
  • Full bun run test: 1086 Node tests passed, 1 platform-specific skip; 30 Vitest tests passed on the final rerun. The first pre-submit full run hit two existing Subagent watchdog timing failures; both passed in isolation and the full rerun passed without source changes. Those earlier failures are not being hidden or treated as Skill regressions..
  • git diff --check and Decision/README local-link checks: passed.
  • Hosted CI for the new commit is tracked separately below; old-candidate CI is not evidence for this revision.
  • This is deterministic Session integration coverage, not a live paid-model efficacy benchmark or new PTY UI acceptance. Previous inline-completion smoke/review results are historical and do not apply to the replacement.

Impact

  • User-visible: keep native slash invocation/completion. $skill is ordinary text, with no OpenPI automatic-loading or inline multi-reference guarantee.
  • Model-visible/history: native slash bodies are normal user messages; native reads are normal tool results. Both use Pi persistence and compaction. There is no separate hidden-body overlay.
  • Runtime/config/tools: no production delta from main; no new state, settings, tool permissions or dependencies.
  • Accepted limit: compaction does not guarantee verbatim Skill retention or automatic rereading. Read-output and total-context limits remain native Pi's limits.
  • Compatibility: this intentionally supersedes the unmerged candidate's unchanged-raw-text/hidden-body contract. No existing Session records or user settings are rewritten.
  • Scope: no automatic closure of feat: support inline skill references with $ autocomplete #282/feat: add TUI autocomplete for Inline Skill References #317 or the separate feat(skills): support inline $ Skill references #321 PR. Issue test: preserve native Pi Skill invocation and lifecycle #316 records the native contract, with the superseded inline requirements retained as history.
  • Merge: no merge or auto-merge enabled. Branch protection requires the current CI checks and an approval from someone other than the latest pusher.

Contributions and history

The earlier work by sowen1023 and bkyssn remains credited in the commit history and linked PRs. Its runtime mechanism is retired because of the maintainer's scope decision, not because those contributors failed the original requirement.

Current revision

  • Head: 89f6c88fab44e489be38d276d76c7f9cd63c655f.
  • Fast-forward update; contributor commits and history are preserved.
  • Required CI and non-last-pusher approval remain separate gates. See the current checks and readiness receipt; this description does not imply approval or merge.

@github-actions github-actions Bot added the documentation Improvements or additions to documentation label Aug 31, 2026
@tt-a1i

tt-a1i commented Aug 31, 2026

Copy link
Copy Markdown
Collaborator

感谢 @bkyssn@sowen1023 的投入。这里由维护者统一整合:以 #322 的 Session 实现为基础,纳入 #321 的 TUI 补全和相关测试,并修复评审发现的队列、压缩与解析边界问题。整合、冲突处理和验证由我们负责,采用的代码会保留原作者贡献与共同署名。请先不用继续重复修改这两块;我们会在整合结果通过验证后合并主 PR,再将另一 PR 标明已整合并关闭。当前尚未合并。

…ections

Integrate the autocomplete adapter and Editor tests from bkyssn/openpi PR openpi-dev#321 into sowen1023/openpi PR openpi-dev#322. Preserve run-scoped Skill snapshots through native compaction and repair Unicode and autocomplete composition boundaries.

Co-authored-by: lwc <1803086257@qq.com>
@tt-a1i tt-a1i changed the title feat: expand inline Skill references for Session inputs feat(skills): support inline references across TUI and Session inputs Aug 31, 2026
@tt-a1i

tt-a1i commented Aug 31, 2026

Copy link
Copy Markdown
Collaborator

整合提交已推送:e4731fcc90af172b0dbed3325220d42f13cfb81c。在原 #322 上追加提交,没有重写原作者历史。

  • 纳入 feat(skills): support inline $ Skill references #321 的补全实现和 Editor 测试;提交保留 Co-authored-by: lwc <1803086257@qq.com>,原 test(skills): preserve native Pi loading and session lifecycle #322 的作者提交保留。
  • 修复自动压缩重试丢失 Skill 正文、Unicode 未知名称误匹配,以及补全包装器触发字符组合。
  • 保留原始消息、运行期快照、排队输入、原生 slash/file 补全;没有新增工具、权限、配置或 Skill 正文持久化。
  • Node 24.18.0 / Pi 0.84.1:bun run check 通过;专项 25/25;bun run test 为 Node 1101 通过、1 个既有平台跳过,Vitest 30/30。
  • 两个独立复审视角已通过;第一轮发现的补全组合问题已修复并复审。
  • 隔离环境 pi list 仅一个 OpenPI 源,指向本次 checkout;真实 PTY TUI 验证 $inline-smoke/skill:inline-smoke@README.md 的 Tab 插入不提交,/reload 后补全仍正常。Provider 行为由真实 Session + 本地 faux provider 验证,未调用外部付费模型。

该提交的 GitHub CI 已全部通过:run 33367106344,包含 Node 22.19.0、Node 24 和 Windows。当前仅剩独立人工审批门禁,尚未合并;维护者正在确认收口方式。合并后将 #321 标明已整合关闭,并在最终 squash 提交保留两位贡献者署名。

@tt-a1i tt-a1i changed the title feat(skills): support inline references across TUI and Session inputs test(skills): preserve native Pi loading and session lifecycle Aug 31, 2026
@tt-a1i

tt-a1i commented Aug 31, 2026

Copy link
Copy Markdown
Collaborator

原生方案提交与验证回执(2026-08-31)

当前 head:89f6c88fab44e489be38d276d76c7f9cd63c655f;base:ba550bc1d918147c326840276eff018b505ed9d8

剩余门槛:需要另一位有 write 权限、且不是最后推送者的成员 approve 当前版本。 本次没有自批、修改分支保护、开启 auto-merge 或执行合并。模型效果与新终端 UI 验收未新增声明。

@tt-a1i
tt-a1i merged commit f474f60 into openpi-dev:main Aug 31, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants