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

@sowen1023sowen1023 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-actionsgithub-actionsBot 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-a1itt-a1i changed the title feat: expand inline Skill references for Session inputsfeat(skills): support inline references across TUI and Session inputsAug 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-a1itt-a1i changed the title feat(skills): support inline references across TUI and Session inputstest(skills): preserve native Pi loading and session lifecycleAug 31, 2026
@tt-a1i

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:mainAug 31, 2026
4 checks passed
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentationImprovements or additions to documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@sowen1023@tt-a1i
, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
test(skills): preserve native Pi loading and session lifecycle by sowen1023 · Pull Request #322 · openpi-dev/openpi · GitHub
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

@sowen1023sowen1023 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-actionsgithub-actionsBot 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-a1itt-a1i changed the title feat: expand inline Skill references for Session inputsfeat(skills): support inline references across TUI and Session inputsAug 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-a1itt-a1i changed the title feat(skills): support inline references across TUI and Session inputstest(skills): preserve native Pi loading and session lifecycleAug 31, 2026
@tt-a1i

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:mainAug 31, 2026
4 checks passed
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentationImprovements or additions to documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@sowen1023@tt-a1i
, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' test(skills): preserve native Pi loading and session lifecycle by sowen1023 · Pull Request #322 · openpi-dev/openpi · GitHub
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

@sowen1023sowen1023 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-actionsgithub-actionsBot 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-a1itt-a1i changed the title feat: expand inline Skill references for Session inputsfeat(skills): support inline references across TUI and Session inputsAug 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-a1itt-a1i changed the title feat(skills): support inline references across TUI and Session inputstest(skills): preserve native Pi loading and session lifecycleAug 31, 2026
@tt-a1i

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:mainAug 31, 2026
4 checks passed
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentationImprovements or additions to documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@sowen1023@tt-a1i
, 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' test(skills): preserve native Pi loading and session lifecycle by sowen1023 · Pull Request #322 · openpi-dev/openpi · GitHub
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

@sowen1023sowen1023 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-actionsgithub-actionsBot 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-a1itt-a1i changed the title feat: expand inline Skill references for Session inputsfeat(skills): support inline references across TUI and Session inputsAug 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-a1itt-a1i changed the title feat(skills): support inline references across TUI and Session inputstest(skills): preserve native Pi loading and session lifecycleAug 31, 2026
@tt-a1i

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:mainAug 31, 2026
4 checks passed
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentationImprovements or additions to documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@sowen1023@tt-a1i
, 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ' test(skills): preserve native Pi loading and session lifecycle by sowen1023 · Pull Request #322 · openpi-dev/openpi · GitHub
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

@sowen1023sowen1023 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-actionsgithub-actionsBot 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-a1itt-a1i changed the title feat: expand inline Skill references for Session inputsfeat(skills): support inline references across TUI and Session inputsAug 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-a1itt-a1i changed the title feat(skills): support inline references across TUI and Session inputstest(skills): preserve native Pi loading and session lifecycleAug 31, 2026
@tt-a1i

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:mainAug 31, 2026
4 checks passed
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentationImprovements or additions to documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@sowen1023@tt-a1i
, 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' test(skills): preserve native Pi loading and session lifecycle by sowen1023 · Pull Request #322 · openpi-dev/openpi · GitHub
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

@sowen1023sowen1023 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-actionsgithub-actionsBot 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-a1itt-a1i changed the title feat: expand inline Skill references for Session inputsfeat(skills): support inline references across TUI and Session inputsAug 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-a1itt-a1i changed the title feat(skills): support inline references across TUI and Session inputstest(skills): preserve native Pi loading and session lifecycleAug 31, 2026
@tt-a1i

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:mainAug 31, 2026
4 checks passed
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentationImprovements or additions to documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@sowen1023@tt-a1i
, 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' test(skills): preserve native Pi loading and session lifecycle by sowen1023 · Pull Request #322 · openpi-dev/openpi · GitHub
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

@sowen1023sowen1023 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-actionsgithub-actionsBot 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-a1itt-a1i changed the title feat: expand inline Skill references for Session inputsfeat(skills): support inline references across TUI and Session inputsAug 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-a1itt-a1i changed the title feat(skills): support inline references across TUI and Session inputstest(skills): preserve native Pi loading and session lifecycleAug 31, 2026
@tt-a1i

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:mainAug 31, 2026
4 checks passed
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentationImprovements or additions to documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@sowen1023@tt-a1i
, 'i'); if (__m === '*' || __re.test(location.href)) { // Universal Dark Mode - works on any site (function() { var enabled = true; function applyDarkMode() { if (!enabled) return; // Create style element if it doesn't exist var style = document.getElementById('universal-dark-mode-style'); if (!style) { style = document.createElement('style'); style.id = 'universal-dark-mode-style'; document.head.appendChild(style); } // Dark mode CSS - inverts colors but preserves images/video style.textContent = ' /* Invert everything except media */ html { filter: invert(1) hue-rotate(180deg) !important; background: #1a1a2e !important; } /* Restore images, videos, iframes, canvas */ img, video, iframe, canvas, svg, picture, [style*="background-image"] { filter: invert(1) hue-rotate(180deg) !important; } /* Preserve specific elements that should not be inverted */ .no-dark-mode, .no-dark-mode *, [data-theme="light"], [data-theme="light"], .ace_editor, .ace_editor *, .CodeMirror, .CodeMirror *, .monaco-editor, .monaco-editor *, .markdown-body pre, .markdown-body pre *, .highlight, .highlight *, pre code, pre code * { filter: none !important; } /* Fix common UI elements */ .modal, .popup, .dropdown-menu, .tooltip, .popover { filter: invert(1) hue-rotate(180deg) !important; background: #2d2d44 !important; border-color: #444 !important; } /* Scrollbars */ ::-webkit-scrollbar { background: #1a1a2e !important; } ::-webkit-scrollbar-thumb { background: #444 !important; } ::-webkit-scrollbar-thumb:hover { background: #555 !important; } /* Selection */ ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; } ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; } '; } function removeDarkMode() { var style = document.getElementById('universal-dark-mode-style'); if (style) style.remove(); } // Toggle with Alt+Shift+D document.addEventListener('keydown', function(e) { if (e.altKey && e.shiftKey && e.key === 'D') { e.preventDefault(); enabled = !enabled; if (enabled) { applyDarkMode(); console.log('[Universal Dark Mode] Enabled'); } else { removeDarkMode(); console.log('[Universal Dark Mode] Disabled'); } } }); // Apply on load applyDarkMode(); // Re-apply on dynamic content var observer = new MutationObserver(function(mutations) { if (enabled && !document.getElementById('universal-dark-mode-style')) { applyDarkMode(); } }); observer.observe(document.head, { childList: true }); console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle'); })(); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })(); test(skills): preserve native Pi loading and session lifecycle by sowen1023 · Pull Request #322 · openpi-dev/openpi · GitHub
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

@sowen1023sowen1023 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-actionsgithub-actionsBot 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-a1itt-a1i changed the title feat: expand inline Skill references for Session inputsfeat(skills): support inline references across TUI and Session inputsAug 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-a1itt-a1i changed the title feat(skills): support inline references across TUI and Session inputstest(skills): preserve native Pi loading and session lifecycleAug 31, 2026
@tt-a1i

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:mainAug 31, 2026
4 checks passed
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentationImprovements or additions to documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@sowen1023@tt-a1i