chore(cli): remove duplicated skill token helpers - #3267

Merged
Astro-Han merged 1 commit into
apache:mainfrom
seanxuu:chore/remove-cli-skill-token-duplicate
Aug 20, 2026
Merged

chore(cli): remove duplicated skill token helpers#3267
Astro-Han merged 1 commit into
apache:mainfrom
seanxuu:chore/remove-cli-skill-token-duplicate

Conversation

@seanxuu

@seanxuuseanxuu commented Aug 20, 2026

Copy link
Copy Markdown
Contributor

Summary

Refs #3218.

Removes the unused CLI copy of skill-token parsing helpers. The remaining autocomplete helper now lives with its only caller, while highlighting imports the shared token grammar from Core.

Verification

  • npx biome check packages/cli/src/pi-tui-pickers.ts packages/cli/src/skill-highlight-editor.ts
  • npm --workspace maka-agent run typecheck
  • npm --workspace maka-agent test (315 passing)

AI use

  • No generative tool made a substantive contribution

Tool(s) and scope: Codex assisted with code analysis, patch preparation, and local verification. I reviewed and submitted the change.

…into pi-tui-pickers
This commit deletes the skill-token module and moves the skill invocation prefix logic into pi-tui-pickers. The skill invocation prefix function is now defined directly in pi-tui-pickers, streamlining the codebase. Additionally, the import statement for SKILL_INVOCATION_TOKEN_SOURCE has been updated in skill-highlight-editor to reflect the new structure.

@Astro-HanAstro-Han left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks — this is a real duplicate, not a cosmetic one. Reviewed exact head 7fdac7fc19d8e75cd11c96184ac6c85dbd226e47.

I confirmed the deletion is safe: parseSkillInvocationTokens and stripSkillInvocationTokens already live in @maka/runtime/skill-invocation and are what root-turn-coordinator and interactive-turn-coordinator actually call on the submit path, so the CLI copy had no consumers, and nothing else in the tree still references skill-token. Moving the one surviving helper next to its only caller and importing the grammar from Core is the right direction.

One follow-up inline: the module you deleted existed to keep the grammar in one place, and the helper that survived it still hardcodes its own copy of that grammar. No findings above P3. No CI checks are currently reported for this head.

Review disclosure: this review was prepared with Claude Code, which read the diff at this head and traced the removed helpers' consumers across the workspace. The human contributor reviewed it before posting.

): { prefix: string; query: string } | null {
const currentLine = lines[cursorLine] || '';
const beforeCursor = currentLine.slice(0, cursorCol);
const match = /(?:^|\s)(\/skill:([A-Za-z0-9._-]*))$/.exec(beforeCursor);

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[P3] Derive this prefix pattern from the shared grammar instead of restating it. The deleted module's stated purpose was that SKILL_INVOCATION_TOKEN_SOURCE in Core is the single owner of where a /skill: token starts and ends, and the highlighter next door still imports it — but this literal re-declares the id charset [A-Za-z0-9._-], so widening the charset in Core would leave autocomplete quietly refusing to offer names the rest of the system accepts. The divergence is pre-existing, not introduced here, but a PR whose whole point is removing the duplicated copy is the right place to close it. Build the regex from SKILL_INVOCATION_TOKEN_SOURCE with the trailing quantifier relaxed so an empty query still triggers, or at minimum add a test asserting both accept the same name charset.

@Astro-HanAstro-Han mentioned this pull request Aug 20, 2026
2 tasks

@Astro-HanAstro-Han left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approving at 7fdac7fc19d8e75cd11c96184ac6c85dbd226e47. My review of this head found nothing above P3, so nothing here should hold the merge — the inline note stands as a suggestion, to take or leave.

The review disclosure on my earlier comment applies: it was prepared with Claude Code, and I reviewed the diff and the findings myself before posting. This approval is my own judgment.

@Astro-Han
Astro-Han merged commit 9d4392c into apache:mainAug 20, 2026
17 checks passed
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.

2 participants

@seanxuu@Astro-Han
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n 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;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

chore(cli): remove duplicated skill token helpers - #3267

Merged
Astro-Han merged 1 commit into
apache:mainfrom
seanxuu:chore/remove-cli-skill-token-duplicate
Aug 20, 2026
Merged

chore(cli): remove duplicated skill token helpers#3267
Astro-Han merged 1 commit into
apache:mainfrom
seanxuu:chore/remove-cli-skill-token-duplicate

Conversation

@seanxuu

@seanxuuseanxuu commented Aug 20, 2026

Copy link
Copy Markdown
Contributor

Summary

Refs #3218.

Removes the unused CLI copy of skill-token parsing helpers. The remaining autocomplete helper now lives with its only caller, while highlighting imports the shared token grammar from Core.

Verification

  • npx biome check packages/cli/src/pi-tui-pickers.ts packages/cli/src/skill-highlight-editor.ts
  • npm --workspace maka-agent run typecheck
  • npm --workspace maka-agent test (315 passing)

AI use

  • No generative tool made a substantive contribution

Tool(s) and scope: Codex assisted with code analysis, patch preparation, and local verification. I reviewed and submitted the change.

…into pi-tui-pickers
This commit deletes the skill-token module and moves the skill invocation prefix logic into pi-tui-pickers. The skill invocation prefix function is now defined directly in pi-tui-pickers, streamlining the codebase. Additionally, the import statement for SKILL_INVOCATION_TOKEN_SOURCE has been updated in skill-highlight-editor to reflect the new structure.

@Astro-HanAstro-Han left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks — this is a real duplicate, not a cosmetic one. Reviewed exact head 7fdac7fc19d8e75cd11c96184ac6c85dbd226e47.

I confirmed the deletion is safe: parseSkillInvocationTokens and stripSkillInvocationTokens already live in @maka/runtime/skill-invocation and are what root-turn-coordinator and interactive-turn-coordinator actually call on the submit path, so the CLI copy had no consumers, and nothing else in the tree still references skill-token. Moving the one surviving helper next to its only caller and importing the grammar from Core is the right direction.

One follow-up inline: the module you deleted existed to keep the grammar in one place, and the helper that survived it still hardcodes its own copy of that grammar. No findings above P3. No CI checks are currently reported for this head.

Review disclosure: this review was prepared with Claude Code, which read the diff at this head and traced the removed helpers' consumers across the workspace. The human contributor reviewed it before posting.

): { prefix: string; query: string } | null {
const currentLine = lines[cursorLine] || '';
const beforeCursor = currentLine.slice(0, cursorCol);
const match = /(?:^|\s)(\/skill:([A-Za-z0-9._-]*))$/.exec(beforeCursor);

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[P3] Derive this prefix pattern from the shared grammar instead of restating it. The deleted module's stated purpose was that SKILL_INVOCATION_TOKEN_SOURCE in Core is the single owner of where a /skill: token starts and ends, and the highlighter next door still imports it — but this literal re-declares the id charset [A-Za-z0-9._-], so widening the charset in Core would leave autocomplete quietly refusing to offer names the rest of the system accepts. The divergence is pre-existing, not introduced here, but a PR whose whole point is removing the duplicated copy is the right place to close it. Build the regex from SKILL_INVOCATION_TOKEN_SOURCE with the trailing quantifier relaxed so an empty query still triggers, or at minimum add a test asserting both accept the same name charset.

@Astro-HanAstro-Han mentioned this pull request Aug 20, 2026
2 tasks

@Astro-HanAstro-Han left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approving at 7fdac7fc19d8e75cd11c96184ac6c85dbd226e47. My review of this head found nothing above P3, so nothing here should hold the merge — the inline note stands as a suggestion, to take or leave.

The review disclosure on my earlier comment applies: it was prepared with Claude Code, and I reviewed the diff and the findings myself before posting. This approval is my own judgment.

@Astro-Han
Astro-Han merged commit 9d4392c into apache:mainAug 20, 2026
17 checks passed
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.

2 participants

@seanxuu@Astro-Han
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

chore(cli): remove duplicated skill token helpers - #3267

Merged
Astro-Han merged 1 commit into
apache:mainfrom
seanxuu:chore/remove-cli-skill-token-duplicate
Aug 20, 2026
Merged

chore(cli): remove duplicated skill token helpers#3267
Astro-Han merged 1 commit into
apache:mainfrom
seanxuu:chore/remove-cli-skill-token-duplicate

Conversation

@seanxuu

@seanxuuseanxuu commented Aug 20, 2026

Copy link
Copy Markdown
Contributor

Summary

Refs #3218.

Removes the unused CLI copy of skill-token parsing helpers. The remaining autocomplete helper now lives with its only caller, while highlighting imports the shared token grammar from Core.

Verification

  • npx biome check packages/cli/src/pi-tui-pickers.ts packages/cli/src/skill-highlight-editor.ts
  • npm --workspace maka-agent run typecheck
  • npm --workspace maka-agent test (315 passing)

AI use

  • No generative tool made a substantive contribution

Tool(s) and scope: Codex assisted with code analysis, patch preparation, and local verification. I reviewed and submitted the change.

…into pi-tui-pickers
This commit deletes the skill-token module and moves the skill invocation prefix logic into pi-tui-pickers. The skill invocation prefix function is now defined directly in pi-tui-pickers, streamlining the codebase. Additionally, the import statement for SKILL_INVOCATION_TOKEN_SOURCE has been updated in skill-highlight-editor to reflect the new structure.

@Astro-HanAstro-Han left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks — this is a real duplicate, not a cosmetic one. Reviewed exact head 7fdac7fc19d8e75cd11c96184ac6c85dbd226e47.

I confirmed the deletion is safe: parseSkillInvocationTokens and stripSkillInvocationTokens already live in @maka/runtime/skill-invocation and are what root-turn-coordinator and interactive-turn-coordinator actually call on the submit path, so the CLI copy had no consumers, and nothing else in the tree still references skill-token. Moving the one surviving helper next to its only caller and importing the grammar from Core is the right direction.

One follow-up inline: the module you deleted existed to keep the grammar in one place, and the helper that survived it still hardcodes its own copy of that grammar. No findings above P3. No CI checks are currently reported for this head.

Review disclosure: this review was prepared with Claude Code, which read the diff at this head and traced the removed helpers' consumers across the workspace. The human contributor reviewed it before posting.

): { prefix: string; query: string } | null {
const currentLine = lines[cursorLine] || '';
const beforeCursor = currentLine.slice(0, cursorCol);
const match = /(?:^|\s)(\/skill:([A-Za-z0-9._-]*))$/.exec(beforeCursor);

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[P3] Derive this prefix pattern from the shared grammar instead of restating it. The deleted module's stated purpose was that SKILL_INVOCATION_TOKEN_SOURCE in Core is the single owner of where a /skill: token starts and ends, and the highlighter next door still imports it — but this literal re-declares the id charset [A-Za-z0-9._-], so widening the charset in Core would leave autocomplete quietly refusing to offer names the rest of the system accepts. The divergence is pre-existing, not introduced here, but a PR whose whole point is removing the duplicated copy is the right place to close it. Build the regex from SKILL_INVOCATION_TOKEN_SOURCE with the trailing quantifier relaxed so an empty query still triggers, or at minimum add a test asserting both accept the same name charset.

@Astro-HanAstro-Han mentioned this pull request Aug 20, 2026
2 tasks

@Astro-HanAstro-Han left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approving at 7fdac7fc19d8e75cd11c96184ac6c85dbd226e47. My review of this head found nothing above P3, so nothing here should hold the merge — the inline note stands as a suggestion, to take or leave.

The review disclosure on my earlier comment applies: it was prepared with Claude Code, and I reviewed the diff and the findings myself before posting. This approval is my own judgment.

@Astro-Han
Astro-Han merged commit 9d4392c into apache:mainAug 20, 2026
17 checks passed
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.

2 participants

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

chore(cli): remove duplicated skill token helpers - #3267

Merged
Astro-Han merged 1 commit into
apache:mainfrom
seanxuu:chore/remove-cli-skill-token-duplicate
Aug 20, 2026
Merged

chore(cli): remove duplicated skill token helpers#3267
Astro-Han merged 1 commit into
apache:mainfrom
seanxuu:chore/remove-cli-skill-token-duplicate

Conversation

@seanxuu

@seanxuuseanxuu commented Aug 20, 2026

Copy link
Copy Markdown
Contributor

Summary

Refs #3218.

Removes the unused CLI copy of skill-token parsing helpers. The remaining autocomplete helper now lives with its only caller, while highlighting imports the shared token grammar from Core.

Verification

  • npx biome check packages/cli/src/pi-tui-pickers.ts packages/cli/src/skill-highlight-editor.ts
  • npm --workspace maka-agent run typecheck
  • npm --workspace maka-agent test (315 passing)

AI use

  • No generative tool made a substantive contribution

Tool(s) and scope: Codex assisted with code analysis, patch preparation, and local verification. I reviewed and submitted the change.

…into pi-tui-pickers
This commit deletes the skill-token module and moves the skill invocation prefix logic into pi-tui-pickers. The skill invocation prefix function is now defined directly in pi-tui-pickers, streamlining the codebase. Additionally, the import statement for SKILL_INVOCATION_TOKEN_SOURCE has been updated in skill-highlight-editor to reflect the new structure.

@Astro-HanAstro-Han left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks — this is a real duplicate, not a cosmetic one. Reviewed exact head 7fdac7fc19d8e75cd11c96184ac6c85dbd226e47.

I confirmed the deletion is safe: parseSkillInvocationTokens and stripSkillInvocationTokens already live in @maka/runtime/skill-invocation and are what root-turn-coordinator and interactive-turn-coordinator actually call on the submit path, so the CLI copy had no consumers, and nothing else in the tree still references skill-token. Moving the one surviving helper next to its only caller and importing the grammar from Core is the right direction.

One follow-up inline: the module you deleted existed to keep the grammar in one place, and the helper that survived it still hardcodes its own copy of that grammar. No findings above P3. No CI checks are currently reported for this head.

Review disclosure: this review was prepared with Claude Code, which read the diff at this head and traced the removed helpers' consumers across the workspace. The human contributor reviewed it before posting.

): { prefix: string; query: string } | null {
const currentLine = lines[cursorLine] || '';
const beforeCursor = currentLine.slice(0, cursorCol);
const match = /(?:^|\s)(\/skill:([A-Za-z0-9._-]*))$/.exec(beforeCursor);

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[P3] Derive this prefix pattern from the shared grammar instead of restating it. The deleted module's stated purpose was that SKILL_INVOCATION_TOKEN_SOURCE in Core is the single owner of where a /skill: token starts and ends, and the highlighter next door still imports it — but this literal re-declares the id charset [A-Za-z0-9._-], so widening the charset in Core would leave autocomplete quietly refusing to offer names the rest of the system accepts. The divergence is pre-existing, not introduced here, but a PR whose whole point is removing the duplicated copy is the right place to close it. Build the regex from SKILL_INVOCATION_TOKEN_SOURCE with the trailing quantifier relaxed so an empty query still triggers, or at minimum add a test asserting both accept the same name charset.

@Astro-HanAstro-Han mentioned this pull request Aug 20, 2026
2 tasks

@Astro-HanAstro-Han left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approving at 7fdac7fc19d8e75cd11c96184ac6c85dbd226e47. My review of this head found nothing above P3, so nothing here should hold the merge — the inline note stands as a suggestion, to take or leave.

The review disclosure on my earlier comment applies: it was prepared with Claude Code, and I reviewed the diff and the findings myself before posting. This approval is my own judgment.

@Astro-Han
Astro-Han merged commit 9d4392c into apache:mainAug 20, 2026
17 checks passed
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.

2 participants

@seanxuu@Astro-Han
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

chore(cli): remove duplicated skill token helpers - #3267

Merged
Astro-Han merged 1 commit into
apache:mainfrom
seanxuu:chore/remove-cli-skill-token-duplicate
Aug 20, 2026
Merged

chore(cli): remove duplicated skill token helpers#3267
Astro-Han merged 1 commit into
apache:mainfrom
seanxuu:chore/remove-cli-skill-token-duplicate

Conversation

@seanxuu

@seanxuuseanxuu commented Aug 20, 2026

Copy link
Copy Markdown
Contributor

Summary

Refs #3218.

Removes the unused CLI copy of skill-token parsing helpers. The remaining autocomplete helper now lives with its only caller, while highlighting imports the shared token grammar from Core.

Verification

  • npx biome check packages/cli/src/pi-tui-pickers.ts packages/cli/src/skill-highlight-editor.ts
  • npm --workspace maka-agent run typecheck
  • npm --workspace maka-agent test (315 passing)

AI use

  • No generative tool made a substantive contribution

Tool(s) and scope: Codex assisted with code analysis, patch preparation, and local verification. I reviewed and submitted the change.

…into pi-tui-pickers
This commit deletes the skill-token module and moves the skill invocation prefix logic into pi-tui-pickers. The skill invocation prefix function is now defined directly in pi-tui-pickers, streamlining the codebase. Additionally, the import statement for SKILL_INVOCATION_TOKEN_SOURCE has been updated in skill-highlight-editor to reflect the new structure.

@Astro-HanAstro-Han left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks — this is a real duplicate, not a cosmetic one. Reviewed exact head 7fdac7fc19d8e75cd11c96184ac6c85dbd226e47.

I confirmed the deletion is safe: parseSkillInvocationTokens and stripSkillInvocationTokens already live in @maka/runtime/skill-invocation and are what root-turn-coordinator and interactive-turn-coordinator actually call on the submit path, so the CLI copy had no consumers, and nothing else in the tree still references skill-token. Moving the one surviving helper next to its only caller and importing the grammar from Core is the right direction.

One follow-up inline: the module you deleted existed to keep the grammar in one place, and the helper that survived it still hardcodes its own copy of that grammar. No findings above P3. No CI checks are currently reported for this head.

Review disclosure: this review was prepared with Claude Code, which read the diff at this head and traced the removed helpers' consumers across the workspace. The human contributor reviewed it before posting.

): { prefix: string; query: string } | null {
const currentLine = lines[cursorLine] || '';
const beforeCursor = currentLine.slice(0, cursorCol);
const match = /(?:^|\s)(\/skill:([A-Za-z0-9._-]*))$/.exec(beforeCursor);

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[P3] Derive this prefix pattern from the shared grammar instead of restating it. The deleted module's stated purpose was that SKILL_INVOCATION_TOKEN_SOURCE in Core is the single owner of where a /skill: token starts and ends, and the highlighter next door still imports it — but this literal re-declares the id charset [A-Za-z0-9._-], so widening the charset in Core would leave autocomplete quietly refusing to offer names the rest of the system accepts. The divergence is pre-existing, not introduced here, but a PR whose whole point is removing the duplicated copy is the right place to close it. Build the regex from SKILL_INVOCATION_TOKEN_SOURCE with the trailing quantifier relaxed so an empty query still triggers, or at minimum add a test asserting both accept the same name charset.

@Astro-HanAstro-Han mentioned this pull request Aug 20, 2026
2 tasks

@Astro-HanAstro-Han left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approving at 7fdac7fc19d8e75cd11c96184ac6c85dbd226e47. My review of this head found nothing above P3, so nothing here should hold the merge — the inline note stands as a suggestion, to take or leave.

The review disclosure on my earlier comment applies: it was prepared with Claude Code, and I reviewed the diff and the findings myself before posting. This approval is my own judgment.

@Astro-Han
Astro-Han merged commit 9d4392c into apache:mainAug 20, 2026
17 checks passed
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.

2 participants

@seanxuu@Astro-Han
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

chore(cli): remove duplicated skill token helpers - #3267

Merged
Astro-Han merged 1 commit into
apache:mainfrom
seanxuu:chore/remove-cli-skill-token-duplicate
Aug 20, 2026
Merged

chore(cli): remove duplicated skill token helpers#3267
Astro-Han merged 1 commit into
apache:mainfrom
seanxuu:chore/remove-cli-skill-token-duplicate

Conversation

@seanxuu

@seanxuuseanxuu commented Aug 20, 2026

Copy link
Copy Markdown
Contributor

Summary

Refs #3218.

Removes the unused CLI copy of skill-token parsing helpers. The remaining autocomplete helper now lives with its only caller, while highlighting imports the shared token grammar from Core.

Verification

  • npx biome check packages/cli/src/pi-tui-pickers.ts packages/cli/src/skill-highlight-editor.ts
  • npm --workspace maka-agent run typecheck
  • npm --workspace maka-agent test (315 passing)

AI use

  • No generative tool made a substantive contribution

Tool(s) and scope: Codex assisted with code analysis, patch preparation, and local verification. I reviewed and submitted the change.

…into pi-tui-pickers
This commit deletes the skill-token module and moves the skill invocation prefix logic into pi-tui-pickers. The skill invocation prefix function is now defined directly in pi-tui-pickers, streamlining the codebase. Additionally, the import statement for SKILL_INVOCATION_TOKEN_SOURCE has been updated in skill-highlight-editor to reflect the new structure.

@Astro-HanAstro-Han left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks — this is a real duplicate, not a cosmetic one. Reviewed exact head 7fdac7fc19d8e75cd11c96184ac6c85dbd226e47.

I confirmed the deletion is safe: parseSkillInvocationTokens and stripSkillInvocationTokens already live in @maka/runtime/skill-invocation and are what root-turn-coordinator and interactive-turn-coordinator actually call on the submit path, so the CLI copy had no consumers, and nothing else in the tree still references skill-token. Moving the one surviving helper next to its only caller and importing the grammar from Core is the right direction.

One follow-up inline: the module you deleted existed to keep the grammar in one place, and the helper that survived it still hardcodes its own copy of that grammar. No findings above P3. No CI checks are currently reported for this head.

Review disclosure: this review was prepared with Claude Code, which read the diff at this head and traced the removed helpers' consumers across the workspace. The human contributor reviewed it before posting.

): { prefix: string; query: string } | null {
const currentLine = lines[cursorLine] || '';
const beforeCursor = currentLine.slice(0, cursorCol);
const match = /(?:^|\s)(\/skill:([A-Za-z0-9._-]*))$/.exec(beforeCursor);

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[P3] Derive this prefix pattern from the shared grammar instead of restating it. The deleted module's stated purpose was that SKILL_INVOCATION_TOKEN_SOURCE in Core is the single owner of where a /skill: token starts and ends, and the highlighter next door still imports it — but this literal re-declares the id charset [A-Za-z0-9._-], so widening the charset in Core would leave autocomplete quietly refusing to offer names the rest of the system accepts. The divergence is pre-existing, not introduced here, but a PR whose whole point is removing the duplicated copy is the right place to close it. Build the regex from SKILL_INVOCATION_TOKEN_SOURCE with the trailing quantifier relaxed so an empty query still triggers, or at minimum add a test asserting both accept the same name charset.

@Astro-HanAstro-Han mentioned this pull request Aug 20, 2026
2 tasks

@Astro-HanAstro-Han left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approving at 7fdac7fc19d8e75cd11c96184ac6c85dbd226e47. My review of this head found nothing above P3, so nothing here should hold the merge — the inline note stands as a suggestion, to take or leave.

The review disclosure on my earlier comment applies: it was prepared with Claude Code, and I reviewed the diff and the findings myself before posting. This approval is my own judgment.

@Astro-Han
Astro-Han merged commit 9d4392c into apache:mainAug 20, 2026
17 checks passed
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.

2 participants

@seanxuu@Astro-Han
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

chore(cli): remove duplicated skill token helpers - #3267

Merged
Astro-Han merged 1 commit into
apache:mainfrom
seanxuu:chore/remove-cli-skill-token-duplicate
Aug 20, 2026
Merged

chore(cli): remove duplicated skill token helpers#3267
Astro-Han merged 1 commit into
apache:mainfrom
seanxuu:chore/remove-cli-skill-token-duplicate

Conversation

@seanxuu

@seanxuuseanxuu commented Aug 20, 2026

Copy link
Copy Markdown
Contributor

Summary

Refs #3218.

Removes the unused CLI copy of skill-token parsing helpers. The remaining autocomplete helper now lives with its only caller, while highlighting imports the shared token grammar from Core.

Verification

  • npx biome check packages/cli/src/pi-tui-pickers.ts packages/cli/src/skill-highlight-editor.ts
  • npm --workspace maka-agent run typecheck
  • npm --workspace maka-agent test (315 passing)

AI use

  • No generative tool made a substantive contribution

Tool(s) and scope: Codex assisted with code analysis, patch preparation, and local verification. I reviewed and submitted the change.

…into pi-tui-pickers
This commit deletes the skill-token module and moves the skill invocation prefix logic into pi-tui-pickers. The skill invocation prefix function is now defined directly in pi-tui-pickers, streamlining the codebase. Additionally, the import statement for SKILL_INVOCATION_TOKEN_SOURCE has been updated in skill-highlight-editor to reflect the new structure.

@Astro-HanAstro-Han left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks — this is a real duplicate, not a cosmetic one. Reviewed exact head 7fdac7fc19d8e75cd11c96184ac6c85dbd226e47.

I confirmed the deletion is safe: parseSkillInvocationTokens and stripSkillInvocationTokens already live in @maka/runtime/skill-invocation and are what root-turn-coordinator and interactive-turn-coordinator actually call on the submit path, so the CLI copy had no consumers, and nothing else in the tree still references skill-token. Moving the one surviving helper next to its only caller and importing the grammar from Core is the right direction.

One follow-up inline: the module you deleted existed to keep the grammar in one place, and the helper that survived it still hardcodes its own copy of that grammar. No findings above P3. No CI checks are currently reported for this head.

Review disclosure: this review was prepared with Claude Code, which read the diff at this head and traced the removed helpers' consumers across the workspace. The human contributor reviewed it before posting.

): { prefix: string; query: string } | null {
const currentLine = lines[cursorLine] || '';
const beforeCursor = currentLine.slice(0, cursorCol);
const match = /(?:^|\s)(\/skill:([A-Za-z0-9._-]*))$/.exec(beforeCursor);

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[P3] Derive this prefix pattern from the shared grammar instead of restating it. The deleted module's stated purpose was that SKILL_INVOCATION_TOKEN_SOURCE in Core is the single owner of where a /skill: token starts and ends, and the highlighter next door still imports it — but this literal re-declares the id charset [A-Za-z0-9._-], so widening the charset in Core would leave autocomplete quietly refusing to offer names the rest of the system accepts. The divergence is pre-existing, not introduced here, but a PR whose whole point is removing the duplicated copy is the right place to close it. Build the regex from SKILL_INVOCATION_TOKEN_SOURCE with the trailing quantifier relaxed so an empty query still triggers, or at minimum add a test asserting both accept the same name charset.

@Astro-HanAstro-Han mentioned this pull request Aug 20, 2026
2 tasks

@Astro-HanAstro-Han left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approving at 7fdac7fc19d8e75cd11c96184ac6c85dbd226e47. My review of this head found nothing above P3, so nothing here should hold the merge — the inline note stands as a suggestion, to take or leave.

The review disclosure on my earlier comment applies: it was prepared with Claude Code, and I reviewed the diff and the findings myself before posting. This approval is my own judgment.

@Astro-Han
Astro-Han merged commit 9d4392c into apache:mainAug 20, 2026
17 checks passed
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.

2 participants

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

chore(cli): remove duplicated skill token helpers - #3267

Merged
Astro-Han merged 1 commit into
apache:mainfrom
seanxuu:chore/remove-cli-skill-token-duplicate
Aug 20, 2026
Merged

chore(cli): remove duplicated skill token helpers#3267
Astro-Han merged 1 commit into
apache:mainfrom
seanxuu:chore/remove-cli-skill-token-duplicate

Conversation

@seanxuu

@seanxuuseanxuu commented Aug 20, 2026

Copy link
Copy Markdown
Contributor

Summary

Refs #3218.

Removes the unused CLI copy of skill-token parsing helpers. The remaining autocomplete helper now lives with its only caller, while highlighting imports the shared token grammar from Core.

Verification

  • npx biome check packages/cli/src/pi-tui-pickers.ts packages/cli/src/skill-highlight-editor.ts
  • npm --workspace maka-agent run typecheck
  • npm --workspace maka-agent test (315 passing)

AI use

  • No generative tool made a substantive contribution

Tool(s) and scope: Codex assisted with code analysis, patch preparation, and local verification. I reviewed and submitted the change.

…into pi-tui-pickers
This commit deletes the skill-token module and moves the skill invocation prefix logic into pi-tui-pickers. The skill invocation prefix function is now defined directly in pi-tui-pickers, streamlining the codebase. Additionally, the import statement for SKILL_INVOCATION_TOKEN_SOURCE has been updated in skill-highlight-editor to reflect the new structure.

@Astro-HanAstro-Han left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks — this is a real duplicate, not a cosmetic one. Reviewed exact head 7fdac7fc19d8e75cd11c96184ac6c85dbd226e47.

I confirmed the deletion is safe: parseSkillInvocationTokens and stripSkillInvocationTokens already live in @maka/runtime/skill-invocation and are what root-turn-coordinator and interactive-turn-coordinator actually call on the submit path, so the CLI copy had no consumers, and nothing else in the tree still references skill-token. Moving the one surviving helper next to its only caller and importing the grammar from Core is the right direction.

One follow-up inline: the module you deleted existed to keep the grammar in one place, and the helper that survived it still hardcodes its own copy of that grammar. No findings above P3. No CI checks are currently reported for this head.

Review disclosure: this review was prepared with Claude Code, which read the diff at this head and traced the removed helpers' consumers across the workspace. The human contributor reviewed it before posting.

): { prefix: string; query: string } | null {
const currentLine = lines[cursorLine] || '';
const beforeCursor = currentLine.slice(0, cursorCol);
const match = /(?:^|\s)(\/skill:([A-Za-z0-9._-]*))$/.exec(beforeCursor);

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[P3] Derive this prefix pattern from the shared grammar instead of restating it. The deleted module's stated purpose was that SKILL_INVOCATION_TOKEN_SOURCE in Core is the single owner of where a /skill: token starts and ends, and the highlighter next door still imports it — but this literal re-declares the id charset [A-Za-z0-9._-], so widening the charset in Core would leave autocomplete quietly refusing to offer names the rest of the system accepts. The divergence is pre-existing, not introduced here, but a PR whose whole point is removing the duplicated copy is the right place to close it. Build the regex from SKILL_INVOCATION_TOKEN_SOURCE with the trailing quantifier relaxed so an empty query still triggers, or at minimum add a test asserting both accept the same name charset.

@Astro-HanAstro-Han mentioned this pull request Aug 20, 2026
2 tasks

@Astro-HanAstro-Han left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approving at 7fdac7fc19d8e75cd11c96184ac6c85dbd226e47. My review of this head found nothing above P3, so nothing here should hold the merge — the inline note stands as a suggestion, to take or leave.

The review disclosure on my earlier comment applies: it was prepared with Claude Code, and I reviewed the diff and the findings myself before posting. This approval is my own judgment.

@Astro-Han
Astro-Han merged commit 9d4392c into apache:mainAug 20, 2026
17 checks passed
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.

2 participants

@seanxuu@Astro-Han