fix(uxcore): address PR #181 review comments - #183

Merged
manager merged 1 commit into
devfrom
fix/pr181-review-followup
Aug 19, 2026
Merged

fix(uxcore): address PR #181 review comments#183
manager merged 1 commit into
devfrom
fix/pr181-review-followup

Conversation

@manager

Copy link
Copy Markdown
Contributor

Follow-up to #181: addresses the review bot's inline comments that were merged past.

  • OffsecBiasView: conditional classNames now use the cn() helper per AGENTS.md (was raw template strings).
  • rating.ts: geo payload typed as TUserGeo instead of an explicit any.
  • OngoingLayout.module.scss: submit-error color is the shared error red as a named variable, not a fresh hardcoded literal.

The fourth review note (sign-off for the OffSec bias-schema additions) needs no code change: the content and its dev-only gating were explicitly approved by the maintainer.

🤖 Generated with Claude Code

- OffsecBiasView: conditional classNames via the cn() helper instead of
raw template strings, per AGENTS.md convention.
- rating.ts: geo payload typed as TUserGeo instead of an explicit any.
- OngoingLayout.module.scss: submit-error color reuses the shared error
red as a named variable instead of a fresh hardcoded literal.
Fourth review note (OffSec bias-schema sign-off) needs no code change:
the content and its dev-only gating were explicitly approved by Wolf.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@github-actions

github-actionsBot commented Aug 19, 2026

Copy link
Copy Markdown

Claude finished @manager's task in 1m 53s —— View job


Claude's PR review

  • Read trigger request and repo conventions
  • Review src/uxcore/api/rating.ts
  • Review src/uxcore/components/OffsecBiasView/OffsecBiasView.tsx
  • Review src/uxcore/layouts/OngoingLayout/OngoingLayout.module.scss
  • Post overall assessment

Summary

Small, well-scoped follow-up that does exactly what the description says. No bugs, no convention violations, nothing blocking.

rating.tsany replaced with a proper TUserGeo shape; the four destructured fields (country, region, city, ip) map exactly to the type. Minor, non-blocking nit: the type TUserGeo alias is declared inside the function body (rating.ts:8) rather than at module scope — works fine here since it's single-use and not shared (so no .types.ts file is warranted per AGENTS.md), but hoisting it above rateRequest would read slightly more conventionally. Not worth a revision on its own.

OffsecBiasView.tsx — all three conditional/multi-class className strings now use cn() as required by AGENTS.md. Import order is correct: @uxcore/data/biasOffsec and classnames both fall into the "third-party/catch-all @?\w" ESLint group (since @uxcore has no dedicated alias bucket in the flat config), and within that group @uxcore... sorts before classnames alphabetically — so simple-import-sort is satisfied as-is.

OngoingLayout.module.scss — hardcoded #fb1717 promoted to a $error-red SCSS variable with a comment explaining it matches DecisionTable.module.scss's error color. Note this is a conceptual pairing, not a shared source of truth — the DecisionTable file (lines 151, 292) still hardcodes #fb1717 independently, so the two will silently drift if either changes. That's consistent with this repo's current SCSS conventions (no shared token file yet) and matches what the original review comment asked for, so not blocking — just flagging for awareness if a future pass wants a real shared token.

Item 4 (bias-schema sign-off) — correctly left as no-op per the PR description; nothing to verify code-side.

No inline comments needed — nothing here rises above a nitpick.

@manager
manager merged commit c39975c into devAug 19, 2026
2 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.

1 participant

@manager
, '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

fix(uxcore): address PR #181 review comments - #183

Merged
manager merged 1 commit into
devfrom
fix/pr181-review-followup
Aug 19, 2026
Merged

fix(uxcore): address PR #181 review comments#183
manager merged 1 commit into
devfrom
fix/pr181-review-followup

Conversation

@manager

Copy link
Copy Markdown
Contributor

Follow-up to #181: addresses the review bot's inline comments that were merged past.

  • OffsecBiasView: conditional classNames now use the cn() helper per AGENTS.md (was raw template strings).
  • rating.ts: geo payload typed as TUserGeo instead of an explicit any.
  • OngoingLayout.module.scss: submit-error color is the shared error red as a named variable, not a fresh hardcoded literal.

The fourth review note (sign-off for the OffSec bias-schema additions) needs no code change: the content and its dev-only gating were explicitly approved by the maintainer.

🤖 Generated with Claude Code

- OffsecBiasView: conditional classNames via the cn() helper instead of
raw template strings, per AGENTS.md convention.
- rating.ts: geo payload typed as TUserGeo instead of an explicit any.
- OngoingLayout.module.scss: submit-error color reuses the shared error
red as a named variable instead of a fresh hardcoded literal.
Fourth review note (OffSec bias-schema sign-off) needs no code change:
the content and its dev-only gating were explicitly approved by Wolf.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@github-actions

github-actionsBot commented Aug 19, 2026

Copy link
Copy Markdown

Claude finished @manager's task in 1m 53s —— View job


Claude's PR review

  • Read trigger request and repo conventions
  • Review src/uxcore/api/rating.ts
  • Review src/uxcore/components/OffsecBiasView/OffsecBiasView.tsx
  • Review src/uxcore/layouts/OngoingLayout/OngoingLayout.module.scss
  • Post overall assessment

Summary

Small, well-scoped follow-up that does exactly what the description says. No bugs, no convention violations, nothing blocking.

rating.tsany replaced with a proper TUserGeo shape; the four destructured fields (country, region, city, ip) map exactly to the type. Minor, non-blocking nit: the type TUserGeo alias is declared inside the function body (rating.ts:8) rather than at module scope — works fine here since it's single-use and not shared (so no .types.ts file is warranted per AGENTS.md), but hoisting it above rateRequest would read slightly more conventionally. Not worth a revision on its own.

OffsecBiasView.tsx — all three conditional/multi-class className strings now use cn() as required by AGENTS.md. Import order is correct: @uxcore/data/biasOffsec and classnames both fall into the "third-party/catch-all @?\w" ESLint group (since @uxcore has no dedicated alias bucket in the flat config), and within that group @uxcore... sorts before classnames alphabetically — so simple-import-sort is satisfied as-is.

OngoingLayout.module.scss — hardcoded #fb1717 promoted to a $error-red SCSS variable with a comment explaining it matches DecisionTable.module.scss's error color. Note this is a conceptual pairing, not a shared source of truth — the DecisionTable file (lines 151, 292) still hardcodes #fb1717 independently, so the two will silently drift if either changes. That's consistent with this repo's current SCSS conventions (no shared token file yet) and matches what the original review comment asked for, so not blocking — just flagging for awareness if a future pass wants a real shared token.

Item 4 (bias-schema sign-off) — correctly left as no-op per the PR description; nothing to verify code-side.

No inline comments needed — nothing here rises above a nitpick.

@manager
manager merged commit c39975c into devAug 19, 2026
2 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.

1 participant

@manager
, '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

fix(uxcore): address PR #181 review comments - #183

Merged
manager merged 1 commit into
devfrom
fix/pr181-review-followup
Aug 19, 2026
Merged

fix(uxcore): address PR #181 review comments#183
manager merged 1 commit into
devfrom
fix/pr181-review-followup

Conversation

@manager

Copy link
Copy Markdown
Contributor

Follow-up to #181: addresses the review bot's inline comments that were merged past.

  • OffsecBiasView: conditional classNames now use the cn() helper per AGENTS.md (was raw template strings).
  • rating.ts: geo payload typed as TUserGeo instead of an explicit any.
  • OngoingLayout.module.scss: submit-error color is the shared error red as a named variable, not a fresh hardcoded literal.

The fourth review note (sign-off for the OffSec bias-schema additions) needs no code change: the content and its dev-only gating were explicitly approved by the maintainer.

🤖 Generated with Claude Code

- OffsecBiasView: conditional classNames via the cn() helper instead of
raw template strings, per AGENTS.md convention.
- rating.ts: geo payload typed as TUserGeo instead of an explicit any.
- OngoingLayout.module.scss: submit-error color reuses the shared error
red as a named variable instead of a fresh hardcoded literal.
Fourth review note (OffSec bias-schema sign-off) needs no code change:
the content and its dev-only gating were explicitly approved by Wolf.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@github-actions

github-actionsBot commented Aug 19, 2026

Copy link
Copy Markdown

Claude finished @manager's task in 1m 53s —— View job


Claude's PR review

  • Read trigger request and repo conventions
  • Review src/uxcore/api/rating.ts
  • Review src/uxcore/components/OffsecBiasView/OffsecBiasView.tsx
  • Review src/uxcore/layouts/OngoingLayout/OngoingLayout.module.scss
  • Post overall assessment

Summary

Small, well-scoped follow-up that does exactly what the description says. No bugs, no convention violations, nothing blocking.

rating.tsany replaced with a proper TUserGeo shape; the four destructured fields (country, region, city, ip) map exactly to the type. Minor, non-blocking nit: the type TUserGeo alias is declared inside the function body (rating.ts:8) rather than at module scope — works fine here since it's single-use and not shared (so no .types.ts file is warranted per AGENTS.md), but hoisting it above rateRequest would read slightly more conventionally. Not worth a revision on its own.

OffsecBiasView.tsx — all three conditional/multi-class className strings now use cn() as required by AGENTS.md. Import order is correct: @uxcore/data/biasOffsec and classnames both fall into the "third-party/catch-all @?\w" ESLint group (since @uxcore has no dedicated alias bucket in the flat config), and within that group @uxcore... sorts before classnames alphabetically — so simple-import-sort is satisfied as-is.

OngoingLayout.module.scss — hardcoded #fb1717 promoted to a $error-red SCSS variable with a comment explaining it matches DecisionTable.module.scss's error color. Note this is a conceptual pairing, not a shared source of truth — the DecisionTable file (lines 151, 292) still hardcodes #fb1717 independently, so the two will silently drift if either changes. That's consistent with this repo's current SCSS conventions (no shared token file yet) and matches what the original review comment asked for, so not blocking — just flagging for awareness if a future pass wants a real shared token.

Item 4 (bias-schema sign-off) — correctly left as no-op per the PR description; nothing to verify code-side.

No inline comments needed — nothing here rises above a nitpick.

@manager
manager merged commit c39975c into devAug 19, 2026
2 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.

1 participant

@manager
, '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

fix(uxcore): address PR #181 review comments - #183

Merged
manager merged 1 commit into
devfrom
fix/pr181-review-followup
Aug 19, 2026
Merged

fix(uxcore): address PR #181 review comments#183
manager merged 1 commit into
devfrom
fix/pr181-review-followup

Conversation

@manager

Copy link
Copy Markdown
Contributor

Follow-up to #181: addresses the review bot's inline comments that were merged past.

  • OffsecBiasView: conditional classNames now use the cn() helper per AGENTS.md (was raw template strings).
  • rating.ts: geo payload typed as TUserGeo instead of an explicit any.
  • OngoingLayout.module.scss: submit-error color is the shared error red as a named variable, not a fresh hardcoded literal.

The fourth review note (sign-off for the OffSec bias-schema additions) needs no code change: the content and its dev-only gating were explicitly approved by the maintainer.

🤖 Generated with Claude Code

- OffsecBiasView: conditional classNames via the cn() helper instead of
raw template strings, per AGENTS.md convention.
- rating.ts: geo payload typed as TUserGeo instead of an explicit any.
- OngoingLayout.module.scss: submit-error color reuses the shared error
red as a named variable instead of a fresh hardcoded literal.
Fourth review note (OffSec bias-schema sign-off) needs no code change:
the content and its dev-only gating were explicitly approved by Wolf.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@github-actions

github-actionsBot commented Aug 19, 2026

Copy link
Copy Markdown

Claude finished @manager's task in 1m 53s —— View job


Claude's PR review

  • Read trigger request and repo conventions
  • Review src/uxcore/api/rating.ts
  • Review src/uxcore/components/OffsecBiasView/OffsecBiasView.tsx
  • Review src/uxcore/layouts/OngoingLayout/OngoingLayout.module.scss
  • Post overall assessment

Summary

Small, well-scoped follow-up that does exactly what the description says. No bugs, no convention violations, nothing blocking.

rating.tsany replaced with a proper TUserGeo shape; the four destructured fields (country, region, city, ip) map exactly to the type. Minor, non-blocking nit: the type TUserGeo alias is declared inside the function body (rating.ts:8) rather than at module scope — works fine here since it's single-use and not shared (so no .types.ts file is warranted per AGENTS.md), but hoisting it above rateRequest would read slightly more conventionally. Not worth a revision on its own.

OffsecBiasView.tsx — all three conditional/multi-class className strings now use cn() as required by AGENTS.md. Import order is correct: @uxcore/data/biasOffsec and classnames both fall into the "third-party/catch-all @?\w" ESLint group (since @uxcore has no dedicated alias bucket in the flat config), and within that group @uxcore... sorts before classnames alphabetically — so simple-import-sort is satisfied as-is.

OngoingLayout.module.scss — hardcoded #fb1717 promoted to a $error-red SCSS variable with a comment explaining it matches DecisionTable.module.scss's error color. Note this is a conceptual pairing, not a shared source of truth — the DecisionTable file (lines 151, 292) still hardcodes #fb1717 independently, so the two will silently drift if either changes. That's consistent with this repo's current SCSS conventions (no shared token file yet) and matches what the original review comment asked for, so not blocking — just flagging for awareness if a future pass wants a real shared token.

Item 4 (bias-schema sign-off) — correctly left as no-op per the PR description; nothing to verify code-side.

No inline comments needed — nothing here rises above a nitpick.

@manager
manager merged commit c39975c into devAug 19, 2026
2 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.

1 participant

@manager
, '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

fix(uxcore): address PR #181 review comments - #183

Merged
manager merged 1 commit into
devfrom
fix/pr181-review-followup
Aug 19, 2026
Merged

fix(uxcore): address PR #181 review comments#183
manager merged 1 commit into
devfrom
fix/pr181-review-followup

Conversation

@manager

Copy link
Copy Markdown
Contributor

Follow-up to #181: addresses the review bot's inline comments that were merged past.

  • OffsecBiasView: conditional classNames now use the cn() helper per AGENTS.md (was raw template strings).
  • rating.ts: geo payload typed as TUserGeo instead of an explicit any.
  • OngoingLayout.module.scss: submit-error color is the shared error red as a named variable, not a fresh hardcoded literal.

The fourth review note (sign-off for the OffSec bias-schema additions) needs no code change: the content and its dev-only gating were explicitly approved by the maintainer.

🤖 Generated with Claude Code

- OffsecBiasView: conditional classNames via the cn() helper instead of
raw template strings, per AGENTS.md convention.
- rating.ts: geo payload typed as TUserGeo instead of an explicit any.
- OngoingLayout.module.scss: submit-error color reuses the shared error
red as a named variable instead of a fresh hardcoded literal.
Fourth review note (OffSec bias-schema sign-off) needs no code change:
the content and its dev-only gating were explicitly approved by Wolf.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@github-actions

github-actionsBot commented Aug 19, 2026

Copy link
Copy Markdown

Claude finished @manager's task in 1m 53s —— View job


Claude's PR review

  • Read trigger request and repo conventions
  • Review src/uxcore/api/rating.ts
  • Review src/uxcore/components/OffsecBiasView/OffsecBiasView.tsx
  • Review src/uxcore/layouts/OngoingLayout/OngoingLayout.module.scss
  • Post overall assessment

Summary

Small, well-scoped follow-up that does exactly what the description says. No bugs, no convention violations, nothing blocking.

rating.tsany replaced with a proper TUserGeo shape; the four destructured fields (country, region, city, ip) map exactly to the type. Minor, non-blocking nit: the type TUserGeo alias is declared inside the function body (rating.ts:8) rather than at module scope — works fine here since it's single-use and not shared (so no .types.ts file is warranted per AGENTS.md), but hoisting it above rateRequest would read slightly more conventionally. Not worth a revision on its own.

OffsecBiasView.tsx — all three conditional/multi-class className strings now use cn() as required by AGENTS.md. Import order is correct: @uxcore/data/biasOffsec and classnames both fall into the "third-party/catch-all @?\w" ESLint group (since @uxcore has no dedicated alias bucket in the flat config), and within that group @uxcore... sorts before classnames alphabetically — so simple-import-sort is satisfied as-is.

OngoingLayout.module.scss — hardcoded #fb1717 promoted to a $error-red SCSS variable with a comment explaining it matches DecisionTable.module.scss's error color. Note this is a conceptual pairing, not a shared source of truth — the DecisionTable file (lines 151, 292) still hardcodes #fb1717 independently, so the two will silently drift if either changes. That's consistent with this repo's current SCSS conventions (no shared token file yet) and matches what the original review comment asked for, so not blocking — just flagging for awareness if a future pass wants a real shared token.

Item 4 (bias-schema sign-off) — correctly left as no-op per the PR description; nothing to verify code-side.

No inline comments needed — nothing here rises above a nitpick.

@manager
manager merged commit c39975c into devAug 19, 2026
2 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.

1 participant

@manager
, '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

fix(uxcore): address PR #181 review comments - #183

Merged
manager merged 1 commit into
devfrom
fix/pr181-review-followup
Aug 19, 2026
Merged

fix(uxcore): address PR #181 review comments#183
manager merged 1 commit into
devfrom
fix/pr181-review-followup

Conversation

@manager

Copy link
Copy Markdown
Contributor

Follow-up to #181: addresses the review bot's inline comments that were merged past.

  • OffsecBiasView: conditional classNames now use the cn() helper per AGENTS.md (was raw template strings).
  • rating.ts: geo payload typed as TUserGeo instead of an explicit any.
  • OngoingLayout.module.scss: submit-error color is the shared error red as a named variable, not a fresh hardcoded literal.

The fourth review note (sign-off for the OffSec bias-schema additions) needs no code change: the content and its dev-only gating were explicitly approved by the maintainer.

🤖 Generated with Claude Code

- OffsecBiasView: conditional classNames via the cn() helper instead of
raw template strings, per AGENTS.md convention.
- rating.ts: geo payload typed as TUserGeo instead of an explicit any.
- OngoingLayout.module.scss: submit-error color reuses the shared error
red as a named variable instead of a fresh hardcoded literal.
Fourth review note (OffSec bias-schema sign-off) needs no code change:
the content and its dev-only gating were explicitly approved by Wolf.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@github-actions

github-actionsBot commented Aug 19, 2026

Copy link
Copy Markdown

Claude finished @manager's task in 1m 53s —— View job


Claude's PR review

  • Read trigger request and repo conventions
  • Review src/uxcore/api/rating.ts
  • Review src/uxcore/components/OffsecBiasView/OffsecBiasView.tsx
  • Review src/uxcore/layouts/OngoingLayout/OngoingLayout.module.scss
  • Post overall assessment

Summary

Small, well-scoped follow-up that does exactly what the description says. No bugs, no convention violations, nothing blocking.

rating.tsany replaced with a proper TUserGeo shape; the four destructured fields (country, region, city, ip) map exactly to the type. Minor, non-blocking nit: the type TUserGeo alias is declared inside the function body (rating.ts:8) rather than at module scope — works fine here since it's single-use and not shared (so no .types.ts file is warranted per AGENTS.md), but hoisting it above rateRequest would read slightly more conventionally. Not worth a revision on its own.

OffsecBiasView.tsx — all three conditional/multi-class className strings now use cn() as required by AGENTS.md. Import order is correct: @uxcore/data/biasOffsec and classnames both fall into the "third-party/catch-all @?\w" ESLint group (since @uxcore has no dedicated alias bucket in the flat config), and within that group @uxcore... sorts before classnames alphabetically — so simple-import-sort is satisfied as-is.

OngoingLayout.module.scss — hardcoded #fb1717 promoted to a $error-red SCSS variable with a comment explaining it matches DecisionTable.module.scss's error color. Note this is a conceptual pairing, not a shared source of truth — the DecisionTable file (lines 151, 292) still hardcodes #fb1717 independently, so the two will silently drift if either changes. That's consistent with this repo's current SCSS conventions (no shared token file yet) and matches what the original review comment asked for, so not blocking — just flagging for awareness if a future pass wants a real shared token.

Item 4 (bias-schema sign-off) — correctly left as no-op per the PR description; nothing to verify code-side.

No inline comments needed — nothing here rises above a nitpick.

@manager
manager merged commit c39975c into devAug 19, 2026
2 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.

1 participant

@manager
, '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

fix(uxcore): address PR #181 review comments - #183

Merged
manager merged 1 commit into
devfrom
fix/pr181-review-followup
Aug 19, 2026
Merged

fix(uxcore): address PR #181 review comments#183
manager merged 1 commit into
devfrom
fix/pr181-review-followup

Conversation

@manager

Copy link
Copy Markdown
Contributor

Follow-up to #181: addresses the review bot's inline comments that were merged past.

  • OffsecBiasView: conditional classNames now use the cn() helper per AGENTS.md (was raw template strings).
  • rating.ts: geo payload typed as TUserGeo instead of an explicit any.
  • OngoingLayout.module.scss: submit-error color is the shared error red as a named variable, not a fresh hardcoded literal.

The fourth review note (sign-off for the OffSec bias-schema additions) needs no code change: the content and its dev-only gating were explicitly approved by the maintainer.

🤖 Generated with Claude Code

- OffsecBiasView: conditional classNames via the cn() helper instead of
raw template strings, per AGENTS.md convention.
- rating.ts: geo payload typed as TUserGeo instead of an explicit any.
- OngoingLayout.module.scss: submit-error color reuses the shared error
red as a named variable instead of a fresh hardcoded literal.
Fourth review note (OffSec bias-schema sign-off) needs no code change:
the content and its dev-only gating were explicitly approved by Wolf.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@github-actions

github-actionsBot commented Aug 19, 2026

Copy link
Copy Markdown

Claude finished @manager's task in 1m 53s —— View job


Claude's PR review

  • Read trigger request and repo conventions
  • Review src/uxcore/api/rating.ts
  • Review src/uxcore/components/OffsecBiasView/OffsecBiasView.tsx
  • Review src/uxcore/layouts/OngoingLayout/OngoingLayout.module.scss
  • Post overall assessment

Summary

Small, well-scoped follow-up that does exactly what the description says. No bugs, no convention violations, nothing blocking.

rating.tsany replaced with a proper TUserGeo shape; the four destructured fields (country, region, city, ip) map exactly to the type. Minor, non-blocking nit: the type TUserGeo alias is declared inside the function body (rating.ts:8) rather than at module scope — works fine here since it's single-use and not shared (so no .types.ts file is warranted per AGENTS.md), but hoisting it above rateRequest would read slightly more conventionally. Not worth a revision on its own.

OffsecBiasView.tsx — all three conditional/multi-class className strings now use cn() as required by AGENTS.md. Import order is correct: @uxcore/data/biasOffsec and classnames both fall into the "third-party/catch-all @?\w" ESLint group (since @uxcore has no dedicated alias bucket in the flat config), and within that group @uxcore... sorts before classnames alphabetically — so simple-import-sort is satisfied as-is.

OngoingLayout.module.scss — hardcoded #fb1717 promoted to a $error-red SCSS variable with a comment explaining it matches DecisionTable.module.scss's error color. Note this is a conceptual pairing, not a shared source of truth — the DecisionTable file (lines 151, 292) still hardcodes #fb1717 independently, so the two will silently drift if either changes. That's consistent with this repo's current SCSS conventions (no shared token file yet) and matches what the original review comment asked for, so not blocking — just flagging for awareness if a future pass wants a real shared token.

Item 4 (bias-schema sign-off) — correctly left as no-op per the PR description; nothing to verify code-side.

No inline comments needed — nothing here rises above a nitpick.

@manager
manager merged commit c39975c into devAug 19, 2026
2 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.

1 participant

@manager
, '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

fix(uxcore): address PR #181 review comments - #183

Merged
manager merged 1 commit into
devfrom
fix/pr181-review-followup
Aug 19, 2026
Merged

fix(uxcore): address PR #181 review comments#183
manager merged 1 commit into
devfrom
fix/pr181-review-followup

Conversation

@manager

Copy link
Copy Markdown
Contributor

Follow-up to #181: addresses the review bot's inline comments that were merged past.

  • OffsecBiasView: conditional classNames now use the cn() helper per AGENTS.md (was raw template strings).
  • rating.ts: geo payload typed as TUserGeo instead of an explicit any.
  • OngoingLayout.module.scss: submit-error color is the shared error red as a named variable, not a fresh hardcoded literal.

The fourth review note (sign-off for the OffSec bias-schema additions) needs no code change: the content and its dev-only gating were explicitly approved by the maintainer.

🤖 Generated with Claude Code

- OffsecBiasView: conditional classNames via the cn() helper instead of
raw template strings, per AGENTS.md convention.
- rating.ts: geo payload typed as TUserGeo instead of an explicit any.
- OngoingLayout.module.scss: submit-error color reuses the shared error
red as a named variable instead of a fresh hardcoded literal.
Fourth review note (OffSec bias-schema sign-off) needs no code change:
the content and its dev-only gating were explicitly approved by Wolf.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@github-actions

github-actionsBot commented Aug 19, 2026

Copy link
Copy Markdown

Claude finished @manager's task in 1m 53s —— View job


Claude's PR review

  • Read trigger request and repo conventions
  • Review src/uxcore/api/rating.ts
  • Review src/uxcore/components/OffsecBiasView/OffsecBiasView.tsx
  • Review src/uxcore/layouts/OngoingLayout/OngoingLayout.module.scss
  • Post overall assessment

Summary

Small, well-scoped follow-up that does exactly what the description says. No bugs, no convention violations, nothing blocking.

rating.tsany replaced with a proper TUserGeo shape; the four destructured fields (country, region, city, ip) map exactly to the type. Minor, non-blocking nit: the type TUserGeo alias is declared inside the function body (rating.ts:8) rather than at module scope — works fine here since it's single-use and not shared (so no .types.ts file is warranted per AGENTS.md), but hoisting it above rateRequest would read slightly more conventionally. Not worth a revision on its own.

OffsecBiasView.tsx — all three conditional/multi-class className strings now use cn() as required by AGENTS.md. Import order is correct: @uxcore/data/biasOffsec and classnames both fall into the "third-party/catch-all @?\w" ESLint group (since @uxcore has no dedicated alias bucket in the flat config), and within that group @uxcore... sorts before classnames alphabetically — so simple-import-sort is satisfied as-is.

OngoingLayout.module.scss — hardcoded #fb1717 promoted to a $error-red SCSS variable with a comment explaining it matches DecisionTable.module.scss's error color. Note this is a conceptual pairing, not a shared source of truth — the DecisionTable file (lines 151, 292) still hardcodes #fb1717 independently, so the two will silently drift if either changes. That's consistent with this repo's current SCSS conventions (no shared token file yet) and matches what the original review comment asked for, so not blocking — just flagging for awareness if a future pass wants a real shared token.

Item 4 (bias-schema sign-off) — correctly left as no-op per the PR description; nothing to verify code-side.

No inline comments needed — nothing here rises above a nitpick.

@manager
manager merged commit c39975c into devAug 19, 2026
2 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.

1 participant

@manager