Skip to content

建立 Thinloop 最小 CI 检查 - #78

Merged
mindcarver merged 5 commits into
mainfrom
chore/76-ci-main-gate
Aug 30, 2026
Merged

建立 Thinloop 最小 CI 检查#78
mindcarver merged 5 commits into
mainfrom
chore/76-ci-main-gate

Conversation

@mindcarver

Copy link
Copy Markdown
Owner

变更

  • 新增稳定命名的 Thinloop CI GitHub Actions 检查,在 Pull Request 与 main push 上运行;
  • 覆盖 177 项仓库测试、三组评测定义、Knowledge dry-run、README 图一致性与 Claude 插件严格校验;
  • 增加 workflow 契约测试,锁定权限、Node 版本、超时、检查名与命令集合;
  • 文档化与远端 workflow 完全一致的本地复现命令及非 CI 边界。

验收证据

  • node --test tests/*.test.mjs:177/177 PASS;
  • node evals/validate-discovery-cases.mjs:PASS;
  • node evals/validate-knowledge-cases.mjs:PASS;
  • node evals/knowledge/validate.mjs:5 paired cases PASS;
  • node evals/knowledge/runner/run.mjs --mode dry:5 cases PASS;
  • node scripts/generate-readme-diagrams.mjs --check:退出码 0;
  • npm exec --yes --package=@anthropic-ai/claude-code@2.1.197 -- claude plugin validate . --strict:Validation passed;
  • git diff --check:退出码 0。

后续远端验证

  • 在该 PR 上观察 Thinloop CI 首次真实运行;
  • 追加临时失败探针提交验证远端 check 返回失败,然后 revert 并要求最终 head 重新通过;
  • required check、独立验收、合并与清理由父 Execute 完成。

风险与边界

  • workflow 不读取密钥,不运行真实模型或桌面安装验证;
  • Claude Code CLI 固定为仓库已有真实验证版本 2.1.197,不写入项目依赖;
  • 本 PR 不修改 branch protection,不合并、不关闭 Issue。

Refs #76

@mindcarver

Copy link
Copy Markdown
OwnerAuthor

远端 CI 验证更新

  • 正常路径:729cb61688598576abe7535d9de1b00a529c42aarun 33300352473 完整通过;
  • A3 受控失败:临时探针提交 d0adceba63eeda7a52b04d57287cee2863ac5591run 33300381400 返回 failure,失败日志明确为 Issue #76 controlled CI failure probeProcess completed with exit code 1
  • 恢复路径:revert 提交 16d460e9d442ed9eba727b3b994a3bd702319e09 删除探针,最终 run 33300406802Thinloop CI 完整通过;
  • 最终 PR 差异仅包含 .github/workflows/ci.ymltests/ci-workflow.test.mjsdocs/verification.md,不包含受控失败探针。

首次远端运行还暴露了浅克隆无法解析固定历史评测提交 3141d81;现已通过 fetch-depth: 0 修复并由契约测试锁定。GitHub 对旧 action runtime 的弃用警告也已通过官方当前 actions/checkout@v7actions/setup-node@v7 消除。

最终 head 本地复核:177/177 tests、三组评测定义、Knowledge dry-run、README 图检查、Claude plugin strict validate 和 git diff --check origin/main...HEAD 均通过。

@mindcarver
mindcarver merged commit 029019b into mainAug 30, 2026
1 check passed
@mindcarver
mindcarver deleted the chore/76-ci-main-gate branch August 30, 2026 08:09
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@mindcarver
, '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" + '
建立 Thinloop 最小 CI 检查 by mindcarver · Pull Request #78 · mindcarver/thinloop · GitHub
Skip to content

建立 Thinloop 最小 CI 检查 - #78

Merged
mindcarver merged 5 commits into
mainfrom
chore/76-ci-main-gate
Aug 30, 2026
Merged

建立 Thinloop 最小 CI 检查#78
mindcarver merged 5 commits into
mainfrom
chore/76-ci-main-gate

Conversation

@mindcarver

Copy link
Copy Markdown
Owner

变更

  • 新增稳定命名的 Thinloop CI GitHub Actions 检查,在 Pull Request 与 main push 上运行;
  • 覆盖 177 项仓库测试、三组评测定义、Knowledge dry-run、README 图一致性与 Claude 插件严格校验;
  • 增加 workflow 契约测试,锁定权限、Node 版本、超时、检查名与命令集合;
  • 文档化与远端 workflow 完全一致的本地复现命令及非 CI 边界。

验收证据

  • node --test tests/*.test.mjs:177/177 PASS;
  • node evals/validate-discovery-cases.mjs:PASS;
  • node evals/validate-knowledge-cases.mjs:PASS;
  • node evals/knowledge/validate.mjs:5 paired cases PASS;
  • node evals/knowledge/runner/run.mjs --mode dry:5 cases PASS;
  • node scripts/generate-readme-diagrams.mjs --check:退出码 0;
  • npm exec --yes --package=@anthropic-ai/claude-code@2.1.197 -- claude plugin validate . --strict:Validation passed;
  • git diff --check:退出码 0。

后续远端验证

  • 在该 PR 上观察 Thinloop CI 首次真实运行;
  • 追加临时失败探针提交验证远端 check 返回失败,然后 revert 并要求最终 head 重新通过;
  • required check、独立验收、合并与清理由父 Execute 完成。

风险与边界

  • workflow 不读取密钥,不运行真实模型或桌面安装验证;
  • Claude Code CLI 固定为仓库已有真实验证版本 2.1.197,不写入项目依赖;
  • 本 PR 不修改 branch protection,不合并、不关闭 Issue。

Refs #76

@mindcarver

Copy link
Copy Markdown
OwnerAuthor

远端 CI 验证更新

  • 正常路径:729cb61688598576abe7535d9de1b00a529c42aarun 33300352473 完整通过;
  • A3 受控失败:临时探针提交 d0adceba63eeda7a52b04d57287cee2863ac5591run 33300381400 返回 failure,失败日志明确为 Issue #76 controlled CI failure probeProcess completed with exit code 1
  • 恢复路径:revert 提交 16d460e9d442ed9eba727b3b994a3bd702319e09 删除探针,最终 run 33300406802Thinloop CI 完整通过;
  • 最终 PR 差异仅包含 .github/workflows/ci.ymltests/ci-workflow.test.mjsdocs/verification.md,不包含受控失败探针。

首次远端运行还暴露了浅克隆无法解析固定历史评测提交 3141d81;现已通过 fetch-depth: 0 修复并由契约测试锁定。GitHub 对旧 action runtime 的弃用警告也已通过官方当前 actions/checkout@v7actions/setup-node@v7 消除。

最终 head 本地复核:177/177 tests、三组评测定义、Knowledge dry-run、README 图检查、Claude plugin strict validate 和 git diff --check origin/main...HEAD 均通过。

@mindcarver
mindcarver merged commit 029019b into mainAug 30, 2026
1 check passed
@mindcarver
mindcarver deleted the chore/76-ci-main-gate branch August 30, 2026 08:09
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@mindcarver
, '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('^' + ".*" + ' 建立 Thinloop 最小 CI 检查 by mindcarver · Pull Request #78 · mindcarver/thinloop · GitHub
Skip to content

建立 Thinloop 最小 CI 检查 - #78

Merged
mindcarver merged 5 commits into
mainfrom
chore/76-ci-main-gate
Aug 30, 2026
Merged

建立 Thinloop 最小 CI 检查#78
mindcarver merged 5 commits into
mainfrom
chore/76-ci-main-gate

Conversation

@mindcarver

Copy link
Copy Markdown
Owner

变更

  • 新增稳定命名的 Thinloop CI GitHub Actions 检查,在 Pull Request 与 main push 上运行;
  • 覆盖 177 项仓库测试、三组评测定义、Knowledge dry-run、README 图一致性与 Claude 插件严格校验;
  • 增加 workflow 契约测试,锁定权限、Node 版本、超时、检查名与命令集合;
  • 文档化与远端 workflow 完全一致的本地复现命令及非 CI 边界。

验收证据

  • node --test tests/*.test.mjs:177/177 PASS;
  • node evals/validate-discovery-cases.mjs:PASS;
  • node evals/validate-knowledge-cases.mjs:PASS;
  • node evals/knowledge/validate.mjs:5 paired cases PASS;
  • node evals/knowledge/runner/run.mjs --mode dry:5 cases PASS;
  • node scripts/generate-readme-diagrams.mjs --check:退出码 0;
  • npm exec --yes --package=@anthropic-ai/claude-code@2.1.197 -- claude plugin validate . --strict:Validation passed;
  • git diff --check:退出码 0。

后续远端验证

  • 在该 PR 上观察 Thinloop CI 首次真实运行;
  • 追加临时失败探针提交验证远端 check 返回失败,然后 revert 并要求最终 head 重新通过;
  • required check、独立验收、合并与清理由父 Execute 完成。

风险与边界

  • workflow 不读取密钥,不运行真实模型或桌面安装验证;
  • Claude Code CLI 固定为仓库已有真实验证版本 2.1.197,不写入项目依赖;
  • 本 PR 不修改 branch protection,不合并、不关闭 Issue。

Refs #76

@mindcarver

Copy link
Copy Markdown
OwnerAuthor

远端 CI 验证更新

  • 正常路径:729cb61688598576abe7535d9de1b00a529c42aarun 33300352473 完整通过;
  • A3 受控失败:临时探针提交 d0adceba63eeda7a52b04d57287cee2863ac5591run 33300381400 返回 failure,失败日志明确为 Issue #76 controlled CI failure probeProcess completed with exit code 1
  • 恢复路径:revert 提交 16d460e9d442ed9eba727b3b994a3bd702319e09 删除探针,最终 run 33300406802Thinloop CI 完整通过;
  • 最终 PR 差异仅包含 .github/workflows/ci.ymltests/ci-workflow.test.mjsdocs/verification.md,不包含受控失败探针。

首次远端运行还暴露了浅克隆无法解析固定历史评测提交 3141d81;现已通过 fetch-depth: 0 修复并由契约测试锁定。GitHub 对旧 action runtime 的弃用警告也已通过官方当前 actions/checkout@v7actions/setup-node@v7 消除。

最终 head 本地复核:177/177 tests、三组评测定义、Knowledge dry-run、README 图检查、Claude plugin strict validate 和 git diff --check origin/main...HEAD 均通过。

@mindcarver
mindcarver merged commit 029019b into mainAug 30, 2026
1 check passed
@mindcarver
mindcarver deleted the chore/76-ci-main-gate branch August 30, 2026 08:09
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@mindcarver
, '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('^' + ".*" + ' 建立 Thinloop 最小 CI 检查 by mindcarver · Pull Request #78 · mindcarver/thinloop · GitHub
Skip to content

建立 Thinloop 最小 CI 检查 - #78

Merged
mindcarver merged 5 commits into
mainfrom
chore/76-ci-main-gate
Aug 30, 2026
Merged

建立 Thinloop 最小 CI 检查#78
mindcarver merged 5 commits into
mainfrom
chore/76-ci-main-gate

Conversation

@mindcarver

Copy link
Copy Markdown
Owner

变更

  • 新增稳定命名的 Thinloop CI GitHub Actions 检查,在 Pull Request 与 main push 上运行;
  • 覆盖 177 项仓库测试、三组评测定义、Knowledge dry-run、README 图一致性与 Claude 插件严格校验;
  • 增加 workflow 契约测试,锁定权限、Node 版本、超时、检查名与命令集合;
  • 文档化与远端 workflow 完全一致的本地复现命令及非 CI 边界。

验收证据

  • node --test tests/*.test.mjs:177/177 PASS;
  • node evals/validate-discovery-cases.mjs:PASS;
  • node evals/validate-knowledge-cases.mjs:PASS;
  • node evals/knowledge/validate.mjs:5 paired cases PASS;
  • node evals/knowledge/runner/run.mjs --mode dry:5 cases PASS;
  • node scripts/generate-readme-diagrams.mjs --check:退出码 0;
  • npm exec --yes --package=@anthropic-ai/claude-code@2.1.197 -- claude plugin validate . --strict:Validation passed;
  • git diff --check:退出码 0。

后续远端验证

  • 在该 PR 上观察 Thinloop CI 首次真实运行;
  • 追加临时失败探针提交验证远端 check 返回失败,然后 revert 并要求最终 head 重新通过;
  • required check、独立验收、合并与清理由父 Execute 完成。

风险与边界

  • workflow 不读取密钥,不运行真实模型或桌面安装验证;
  • Claude Code CLI 固定为仓库已有真实验证版本 2.1.197,不写入项目依赖;
  • 本 PR 不修改 branch protection,不合并、不关闭 Issue。

Refs #76

@mindcarver

Copy link
Copy Markdown
OwnerAuthor

远端 CI 验证更新

  • 正常路径:729cb61688598576abe7535d9de1b00a529c42aarun 33300352473 完整通过;
  • A3 受控失败:临时探针提交 d0adceba63eeda7a52b04d57287cee2863ac5591run 33300381400 返回 failure,失败日志明确为 Issue #76 controlled CI failure probeProcess completed with exit code 1
  • 恢复路径:revert 提交 16d460e9d442ed9eba727b3b994a3bd702319e09 删除探针,最终 run 33300406802Thinloop CI 完整通过;
  • 最终 PR 差异仅包含 .github/workflows/ci.ymltests/ci-workflow.test.mjsdocs/verification.md,不包含受控失败探针。

首次远端运行还暴露了浅克隆无法解析固定历史评测提交 3141d81;现已通过 fetch-depth: 0 修复并由契约测试锁定。GitHub 对旧 action runtime 的弃用警告也已通过官方当前 actions/checkout@v7actions/setup-node@v7 消除。

最终 head 本地复核:177/177 tests、三组评测定义、Knowledge dry-run、README 图检查、Claude plugin strict validate 和 git diff --check origin/main...HEAD 均通过。

@mindcarver
mindcarver merged commit 029019b into mainAug 30, 2026
1 check passed
@mindcarver
mindcarver deleted the chore/76-ci-main-gate branch August 30, 2026 08:09
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@mindcarver
, '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" + ' 建立 Thinloop 最小 CI 检查 by mindcarver · Pull Request #78 · mindcarver/thinloop · GitHub
Skip to content

建立 Thinloop 最小 CI 检查 - #78

Merged
mindcarver merged 5 commits into
mainfrom
chore/76-ci-main-gate
Aug 30, 2026
Merged

建立 Thinloop 最小 CI 检查#78
mindcarver merged 5 commits into
mainfrom
chore/76-ci-main-gate

Conversation

@mindcarver

Copy link
Copy Markdown
Owner

变更

  • 新增稳定命名的 Thinloop CI GitHub Actions 检查,在 Pull Request 与 main push 上运行;
  • 覆盖 177 项仓库测试、三组评测定义、Knowledge dry-run、README 图一致性与 Claude 插件严格校验;
  • 增加 workflow 契约测试,锁定权限、Node 版本、超时、检查名与命令集合;
  • 文档化与远端 workflow 完全一致的本地复现命令及非 CI 边界。

验收证据

  • node --test tests/*.test.mjs:177/177 PASS;
  • node evals/validate-discovery-cases.mjs:PASS;
  • node evals/validate-knowledge-cases.mjs:PASS;
  • node evals/knowledge/validate.mjs:5 paired cases PASS;
  • node evals/knowledge/runner/run.mjs --mode dry:5 cases PASS;
  • node scripts/generate-readme-diagrams.mjs --check:退出码 0;
  • npm exec --yes --package=@anthropic-ai/claude-code@2.1.197 -- claude plugin validate . --strict:Validation passed;
  • git diff --check:退出码 0。

后续远端验证

  • 在该 PR 上观察 Thinloop CI 首次真实运行;
  • 追加临时失败探针提交验证远端 check 返回失败,然后 revert 并要求最终 head 重新通过;
  • required check、独立验收、合并与清理由父 Execute 完成。

风险与边界

  • workflow 不读取密钥,不运行真实模型或桌面安装验证;
  • Claude Code CLI 固定为仓库已有真实验证版本 2.1.197,不写入项目依赖;
  • 本 PR 不修改 branch protection,不合并、不关闭 Issue。

Refs #76

@mindcarver

Copy link
Copy Markdown
OwnerAuthor

远端 CI 验证更新

  • 正常路径:729cb61688598576abe7535d9de1b00a529c42aarun 33300352473 完整通过;
  • A3 受控失败:临时探针提交 d0adceba63eeda7a52b04d57287cee2863ac5591run 33300381400 返回 failure,失败日志明确为 Issue #76 controlled CI failure probeProcess completed with exit code 1
  • 恢复路径:revert 提交 16d460e9d442ed9eba727b3b994a3bd702319e09 删除探针,最终 run 33300406802Thinloop CI 完整通过;
  • 最终 PR 差异仅包含 .github/workflows/ci.ymltests/ci-workflow.test.mjsdocs/verification.md,不包含受控失败探针。

首次远端运行还暴露了浅克隆无法解析固定历史评测提交 3141d81;现已通过 fetch-depth: 0 修复并由契约测试锁定。GitHub 对旧 action runtime 的弃用警告也已通过官方当前 actions/checkout@v7actions/setup-node@v7 消除。

最终 head 本地复核:177/177 tests、三组评测定义、Knowledge dry-run、README 图检查、Claude plugin strict validate 和 git diff --check origin/main...HEAD 均通过。

@mindcarver
mindcarver merged commit 029019b into mainAug 30, 2026
1 check passed
@mindcarver
mindcarver deleted the chore/76-ci-main-gate branch August 30, 2026 08:09
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@mindcarver
, '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('^' + ".*" + ' 建立 Thinloop 最小 CI 检查 by mindcarver · Pull Request #78 · mindcarver/thinloop · GitHub
Skip to content

建立 Thinloop 最小 CI 检查 - #78

Merged
mindcarver merged 5 commits into
mainfrom
chore/76-ci-main-gate
Aug 30, 2026
Merged

建立 Thinloop 最小 CI 检查#78
mindcarver merged 5 commits into
mainfrom
chore/76-ci-main-gate

Conversation

@mindcarver

Copy link
Copy Markdown
Owner

变更

  • 新增稳定命名的 Thinloop CI GitHub Actions 检查,在 Pull Request 与 main push 上运行;
  • 覆盖 177 项仓库测试、三组评测定义、Knowledge dry-run、README 图一致性与 Claude 插件严格校验;
  • 增加 workflow 契约测试,锁定权限、Node 版本、超时、检查名与命令集合;
  • 文档化与远端 workflow 完全一致的本地复现命令及非 CI 边界。

验收证据

  • node --test tests/*.test.mjs:177/177 PASS;
  • node evals/validate-discovery-cases.mjs:PASS;
  • node evals/validate-knowledge-cases.mjs:PASS;
  • node evals/knowledge/validate.mjs:5 paired cases PASS;
  • node evals/knowledge/runner/run.mjs --mode dry:5 cases PASS;
  • node scripts/generate-readme-diagrams.mjs --check:退出码 0;
  • npm exec --yes --package=@anthropic-ai/claude-code@2.1.197 -- claude plugin validate . --strict:Validation passed;
  • git diff --check:退出码 0。

后续远端验证

  • 在该 PR 上观察 Thinloop CI 首次真实运行;
  • 追加临时失败探针提交验证远端 check 返回失败,然后 revert 并要求最终 head 重新通过;
  • required check、独立验收、合并与清理由父 Execute 完成。

风险与边界

  • workflow 不读取密钥,不运行真实模型或桌面安装验证;
  • Claude Code CLI 固定为仓库已有真实验证版本 2.1.197,不写入项目依赖;
  • 本 PR 不修改 branch protection,不合并、不关闭 Issue。

Refs #76

@mindcarver

Copy link
Copy Markdown
OwnerAuthor

远端 CI 验证更新

  • 正常路径:729cb61688598576abe7535d9de1b00a529c42aarun 33300352473 完整通过;
  • A3 受控失败:临时探针提交 d0adceba63eeda7a52b04d57287cee2863ac5591run 33300381400 返回 failure,失败日志明确为 Issue #76 controlled CI failure probeProcess completed with exit code 1
  • 恢复路径:revert 提交 16d460e9d442ed9eba727b3b994a3bd702319e09 删除探针,最终 run 33300406802Thinloop CI 完整通过;
  • 最终 PR 差异仅包含 .github/workflows/ci.ymltests/ci-workflow.test.mjsdocs/verification.md,不包含受控失败探针。

首次远端运行还暴露了浅克隆无法解析固定历史评测提交 3141d81;现已通过 fetch-depth: 0 修复并由契约测试锁定。GitHub 对旧 action runtime 的弃用警告也已通过官方当前 actions/checkout@v7actions/setup-node@v7 消除。

最终 head 本地复核:177/177 tests、三组评测定义、Knowledge dry-run、README 图检查、Claude plugin strict validate 和 git diff --check origin/main...HEAD 均通过。

@mindcarver
mindcarver merged commit 029019b into mainAug 30, 2026
1 check passed
@mindcarver
mindcarver deleted the chore/76-ci-main-gate branch August 30, 2026 08:09
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@mindcarver
, '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('^' + ".*" + ' 建立 Thinloop 最小 CI 检查 by mindcarver · Pull Request #78 · mindcarver/thinloop · GitHub
Skip to content

建立 Thinloop 最小 CI 检查 - #78

Merged
mindcarver merged 5 commits into
mainfrom
chore/76-ci-main-gate
Aug 30, 2026
Merged

建立 Thinloop 最小 CI 检查#78
mindcarver merged 5 commits into
mainfrom
chore/76-ci-main-gate

Conversation

@mindcarver

Copy link
Copy Markdown
Owner

变更

  • 新增稳定命名的 Thinloop CI GitHub Actions 检查,在 Pull Request 与 main push 上运行;
  • 覆盖 177 项仓库测试、三组评测定义、Knowledge dry-run、README 图一致性与 Claude 插件严格校验;
  • 增加 workflow 契约测试,锁定权限、Node 版本、超时、检查名与命令集合;
  • 文档化与远端 workflow 完全一致的本地复现命令及非 CI 边界。

验收证据

  • node --test tests/*.test.mjs:177/177 PASS;
  • node evals/validate-discovery-cases.mjs:PASS;
  • node evals/validate-knowledge-cases.mjs:PASS;
  • node evals/knowledge/validate.mjs:5 paired cases PASS;
  • node evals/knowledge/runner/run.mjs --mode dry:5 cases PASS;
  • node scripts/generate-readme-diagrams.mjs --check:退出码 0;
  • npm exec --yes --package=@anthropic-ai/claude-code@2.1.197 -- claude plugin validate . --strict:Validation passed;
  • git diff --check:退出码 0。

后续远端验证

  • 在该 PR 上观察 Thinloop CI 首次真实运行;
  • 追加临时失败探针提交验证远端 check 返回失败,然后 revert 并要求最终 head 重新通过;
  • required check、独立验收、合并与清理由父 Execute 完成。

风险与边界

  • workflow 不读取密钥,不运行真实模型或桌面安装验证;
  • Claude Code CLI 固定为仓库已有真实验证版本 2.1.197,不写入项目依赖;
  • 本 PR 不修改 branch protection,不合并、不关闭 Issue。

Refs #76

@mindcarver

Copy link
Copy Markdown
OwnerAuthor

远端 CI 验证更新

  • 正常路径:729cb61688598576abe7535d9de1b00a529c42aarun 33300352473 完整通过;
  • A3 受控失败:临时探针提交 d0adceba63eeda7a52b04d57287cee2863ac5591run 33300381400 返回 failure,失败日志明确为 Issue #76 controlled CI failure probeProcess completed with exit code 1
  • 恢复路径:revert 提交 16d460e9d442ed9eba727b3b994a3bd702319e09 删除探针,最终 run 33300406802Thinloop CI 完整通过;
  • 最终 PR 差异仅包含 .github/workflows/ci.ymltests/ci-workflow.test.mjsdocs/verification.md,不包含受控失败探针。

首次远端运行还暴露了浅克隆无法解析固定历史评测提交 3141d81;现已通过 fetch-depth: 0 修复并由契约测试锁定。GitHub 对旧 action runtime 的弃用警告也已通过官方当前 actions/checkout@v7actions/setup-node@v7 消除。

最终 head 本地复核:177/177 tests、三组评测定义、Knowledge dry-run、README 图检查、Claude plugin strict validate 和 git diff --check origin/main...HEAD 均通过。

@mindcarver
mindcarver merged commit 029019b into mainAug 30, 2026
1 check passed
@mindcarver
mindcarver deleted the chore/76-ci-main-gate branch August 30, 2026 08:09
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@mindcarver
, '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); } })(); })(); 建立 Thinloop 最小 CI 检查 by mindcarver · Pull Request #78 · mindcarver/thinloop · GitHub
Skip to content

建立 Thinloop 最小 CI 检查 - #78

Merged
mindcarver merged 5 commits into
mainfrom
chore/76-ci-main-gate
Aug 30, 2026
Merged

建立 Thinloop 最小 CI 检查#78
mindcarver merged 5 commits into
mainfrom
chore/76-ci-main-gate

Conversation

@mindcarver

Copy link
Copy Markdown
Owner

变更

  • 新增稳定命名的 Thinloop CI GitHub Actions 检查,在 Pull Request 与 main push 上运行;
  • 覆盖 177 项仓库测试、三组评测定义、Knowledge dry-run、README 图一致性与 Claude 插件严格校验;
  • 增加 workflow 契约测试,锁定权限、Node 版本、超时、检查名与命令集合;
  • 文档化与远端 workflow 完全一致的本地复现命令及非 CI 边界。

验收证据

  • node --test tests/*.test.mjs:177/177 PASS;
  • node evals/validate-discovery-cases.mjs:PASS;
  • node evals/validate-knowledge-cases.mjs:PASS;
  • node evals/knowledge/validate.mjs:5 paired cases PASS;
  • node evals/knowledge/runner/run.mjs --mode dry:5 cases PASS;
  • node scripts/generate-readme-diagrams.mjs --check:退出码 0;
  • npm exec --yes --package=@anthropic-ai/claude-code@2.1.197 -- claude plugin validate . --strict:Validation passed;
  • git diff --check:退出码 0。

后续远端验证

  • 在该 PR 上观察 Thinloop CI 首次真实运行;
  • 追加临时失败探针提交验证远端 check 返回失败,然后 revert 并要求最终 head 重新通过;
  • required check、独立验收、合并与清理由父 Execute 完成。

风险与边界

  • workflow 不读取密钥,不运行真实模型或桌面安装验证;
  • Claude Code CLI 固定为仓库已有真实验证版本 2.1.197,不写入项目依赖;
  • 本 PR 不修改 branch protection,不合并、不关闭 Issue。

Refs #76

@mindcarver

Copy link
Copy Markdown
OwnerAuthor

远端 CI 验证更新

  • 正常路径:729cb61688598576abe7535d9de1b00a529c42aarun 33300352473 完整通过;
  • A3 受控失败:临时探针提交 d0adceba63eeda7a52b04d57287cee2863ac5591run 33300381400 返回 failure,失败日志明确为 Issue #76 controlled CI failure probeProcess completed with exit code 1
  • 恢复路径:revert 提交 16d460e9d442ed9eba727b3b994a3bd702319e09 删除探针,最终 run 33300406802Thinloop CI 完整通过;
  • 最终 PR 差异仅包含 .github/workflows/ci.ymltests/ci-workflow.test.mjsdocs/verification.md,不包含受控失败探针。

首次远端运行还暴露了浅克隆无法解析固定历史评测提交 3141d81;现已通过 fetch-depth: 0 修复并由契约测试锁定。GitHub 对旧 action runtime 的弃用警告也已通过官方当前 actions/checkout@v7actions/setup-node@v7 消除。

最终 head 本地复核:177/177 tests、三组评测定义、Knowledge dry-run、README 图检查、Claude plugin strict validate 和 git diff --check origin/main...HEAD 均通过。

@mindcarver
mindcarver merged commit 029019b into mainAug 30, 2026
1 check passed
@mindcarver
mindcarver deleted the chore/76-ci-main-gate branch August 30, 2026 08:09
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@mindcarver