Skip to content

refactor(core): split settings into domain owners - #1265

Merged
Astro-Han merged 1 commit into
apache:mainfrom
me2seeks:refactor/1084-core-settings-split
Jul 20, 2026
Merged

refactor(core): split settings into domain owners#1265
Astro-Han merged 1 commit into
apache:mainfrom
me2seeks:refactor/1084-core-settings-split

Conversation

@me2seeks

@me2seeksme2seeks commented Jul 20, 2026

Copy link
Copy Markdown
Contributor

Summary

  • extract bot-chat types, defaults, merging, and readiness normalization into bot-chat-settings.ts, and move package-local bot consumers to that owner
  • move web-search credential reconciliation and persisted normalization into web-search.ts, together with their focused tests
  • distinguish persisted AppNetworkSettings from runtime RuntimeNetworkSettings, while keeping both existing NetworkSettings imports as deprecated compatibility aliases
  • add focused behavior coverage and an extraction contract for public compatibility, ownership, and one-way dependency direction

The existing readiness, allowlist, and credential-safety comments move with their implementations; only stale function and source-location references were updated. Runtime behavior and persisted settings shapes are unchanged.

Refs #1084.

Verification

  • npm run build — passed
  • npm run typecheck — passed
  • Core test suite — 1,130 passed, 0 failed
  • targeted Desktop bot-runtime and settings-network suites — 10 passed, 0 failed
  • npm run test:dist — passed; all workspace tests passed
  • npm run lint — passed
  • npm run format:check — passed after rebasing onto main@bfb9ba83
  • git diff origin/main...HEAD --check — passed
  • git range-diff against the pre-rebase commit — patch equivalent

Visual validation is not applicable: this is a behavior-neutral settings module extraction with no UI changes.

Review focus

  • settings.ts remains the composition and compatibility surface; package-local bot consumers import their real owner directly
  • the new bot-chat and web-search owners do not import back from settings.ts
  • the persisted and runtime network contracts now have unambiguous canonical names without breaking their previous import paths

Move bot-chat types, defaults, merging, and readiness normalization into a package-local owner, then migrate package-local consumers to the leaf while keeping the existing settings and root exports compatible.
Move web-search credential reconciliation beside its settings model and give the persisted and runtime network contracts distinct canonical names, with deprecated NetworkSettings aliases for compatibility. Add focused behavior tests and a source-boundary contract.
Behavior and persisted shapes are unchanged. Part of apache#1084.
@me2seeks
me2seeksforce-pushed the refactor/1084-core-settings-split branch from 4243813 to 1351a73CompareJuly 20, 2026 09:42
@me2seeks

Copy link
Copy Markdown
ContributorAuthor

The branches for this PR and #1261 have been rebased onto the latest green main (bfb9ba83). The new fork CI runs are waiting for maintainer approval before any jobs can start:

Could a maintainer approve both runs when convenient? Both rebases are patch-equivalent, and local build, lint, format, typecheck, and targeted package tests pass. Thanks!

@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.

No concrete findings. I checked the bot-chat and web-search moves against their original implementations, the compatibility exports from the root and settings entry points, and the persisted/runtime network aliases. The extraction preserves the existing shapes and keeps the new leaf modules independent from settings.ts. Typecheck, test, and e2e are green.

@Astro-Han
Astro-Han merged commit c1953de into apache:mainJul 20, 2026
3 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

@me2seeks@Astro-Han
, '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" + '
refactor(core): split settings into domain owners by me2seeks · Pull Request #1265 · apache/maka · GitHub
Skip to content

refactor(core): split settings into domain owners - #1265

Merged
Astro-Han merged 1 commit into
apache:mainfrom
me2seeks:refactor/1084-core-settings-split
Jul 20, 2026
Merged

refactor(core): split settings into domain owners#1265
Astro-Han merged 1 commit into
apache:mainfrom
me2seeks:refactor/1084-core-settings-split

Conversation

@me2seeks

@me2seeksme2seeks commented Jul 20, 2026

Copy link
Copy Markdown
Contributor

Summary

  • extract bot-chat types, defaults, merging, and readiness normalization into bot-chat-settings.ts, and move package-local bot consumers to that owner
  • move web-search credential reconciliation and persisted normalization into web-search.ts, together with their focused tests
  • distinguish persisted AppNetworkSettings from runtime RuntimeNetworkSettings, while keeping both existing NetworkSettings imports as deprecated compatibility aliases
  • add focused behavior coverage and an extraction contract for public compatibility, ownership, and one-way dependency direction

The existing readiness, allowlist, and credential-safety comments move with their implementations; only stale function and source-location references were updated. Runtime behavior and persisted settings shapes are unchanged.

Refs #1084.

Verification

  • npm run build — passed
  • npm run typecheck — passed
  • Core test suite — 1,130 passed, 0 failed
  • targeted Desktop bot-runtime and settings-network suites — 10 passed, 0 failed
  • npm run test:dist — passed; all workspace tests passed
  • npm run lint — passed
  • npm run format:check — passed after rebasing onto main@bfb9ba83
  • git diff origin/main...HEAD --check — passed
  • git range-diff against the pre-rebase commit — patch equivalent

Visual validation is not applicable: this is a behavior-neutral settings module extraction with no UI changes.

Review focus

  • settings.ts remains the composition and compatibility surface; package-local bot consumers import their real owner directly
  • the new bot-chat and web-search owners do not import back from settings.ts
  • the persisted and runtime network contracts now have unambiguous canonical names without breaking their previous import paths

Move bot-chat types, defaults, merging, and readiness normalization into a package-local owner, then migrate package-local consumers to the leaf while keeping the existing settings and root exports compatible.
Move web-search credential reconciliation beside its settings model and give the persisted and runtime network contracts distinct canonical names, with deprecated NetworkSettings aliases for compatibility. Add focused behavior tests and a source-boundary contract.
Behavior and persisted shapes are unchanged. Part of apache#1084.
@me2seeks
me2seeksforce-pushed the refactor/1084-core-settings-split branch from 4243813 to 1351a73CompareJuly 20, 2026 09:42
@me2seeks

Copy link
Copy Markdown
ContributorAuthor

The branches for this PR and #1261 have been rebased onto the latest green main (bfb9ba83). The new fork CI runs are waiting for maintainer approval before any jobs can start:

Could a maintainer approve both runs when convenient? Both rebases are patch-equivalent, and local build, lint, format, typecheck, and targeted package tests pass. Thanks!

@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.

No concrete findings. I checked the bot-chat and web-search moves against their original implementations, the compatibility exports from the root and settings entry points, and the persisted/runtime network aliases. The extraction preserves the existing shapes and keeps the new leaf modules independent from settings.ts. Typecheck, test, and e2e are green.

@Astro-Han
Astro-Han merged commit c1953de into apache:mainJul 20, 2026
3 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

@me2seeks@Astro-Han
, '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('^' + ".*" + ' refactor(core): split settings into domain owners by me2seeks · Pull Request #1265 · apache/maka · GitHub
Skip to content

refactor(core): split settings into domain owners - #1265

Merged
Astro-Han merged 1 commit into
apache:mainfrom
me2seeks:refactor/1084-core-settings-split
Jul 20, 2026
Merged

refactor(core): split settings into domain owners#1265
Astro-Han merged 1 commit into
apache:mainfrom
me2seeks:refactor/1084-core-settings-split

Conversation

@me2seeks

@me2seeksme2seeks commented Jul 20, 2026

Copy link
Copy Markdown
Contributor

Summary

  • extract bot-chat types, defaults, merging, and readiness normalization into bot-chat-settings.ts, and move package-local bot consumers to that owner
  • move web-search credential reconciliation and persisted normalization into web-search.ts, together with their focused tests
  • distinguish persisted AppNetworkSettings from runtime RuntimeNetworkSettings, while keeping both existing NetworkSettings imports as deprecated compatibility aliases
  • add focused behavior coverage and an extraction contract for public compatibility, ownership, and one-way dependency direction

The existing readiness, allowlist, and credential-safety comments move with their implementations; only stale function and source-location references were updated. Runtime behavior and persisted settings shapes are unchanged.

Refs #1084.

Verification

  • npm run build — passed
  • npm run typecheck — passed
  • Core test suite — 1,130 passed, 0 failed
  • targeted Desktop bot-runtime and settings-network suites — 10 passed, 0 failed
  • npm run test:dist — passed; all workspace tests passed
  • npm run lint — passed
  • npm run format:check — passed after rebasing onto main@bfb9ba83
  • git diff origin/main...HEAD --check — passed
  • git range-diff against the pre-rebase commit — patch equivalent

Visual validation is not applicable: this is a behavior-neutral settings module extraction with no UI changes.

Review focus

  • settings.ts remains the composition and compatibility surface; package-local bot consumers import their real owner directly
  • the new bot-chat and web-search owners do not import back from settings.ts
  • the persisted and runtime network contracts now have unambiguous canonical names without breaking their previous import paths

Move bot-chat types, defaults, merging, and readiness normalization into a package-local owner, then migrate package-local consumers to the leaf while keeping the existing settings and root exports compatible.
Move web-search credential reconciliation beside its settings model and give the persisted and runtime network contracts distinct canonical names, with deprecated NetworkSettings aliases for compatibility. Add focused behavior tests and a source-boundary contract.
Behavior and persisted shapes are unchanged. Part of apache#1084.
@me2seeks
me2seeksforce-pushed the refactor/1084-core-settings-split branch from 4243813 to 1351a73CompareJuly 20, 2026 09:42
@me2seeks

Copy link
Copy Markdown
ContributorAuthor

The branches for this PR and #1261 have been rebased onto the latest green main (bfb9ba83). The new fork CI runs are waiting for maintainer approval before any jobs can start:

Could a maintainer approve both runs when convenient? Both rebases are patch-equivalent, and local build, lint, format, typecheck, and targeted package tests pass. Thanks!

@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.

No concrete findings. I checked the bot-chat and web-search moves against their original implementations, the compatibility exports from the root and settings entry points, and the persisted/runtime network aliases. The extraction preserves the existing shapes and keeps the new leaf modules independent from settings.ts. Typecheck, test, and e2e are green.

@Astro-Han
Astro-Han merged commit c1953de into apache:mainJul 20, 2026
3 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

@me2seeks@Astro-Han
, '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('^' + ".*" + ' refactor(core): split settings into domain owners by me2seeks · Pull Request #1265 · apache/maka · GitHub
Skip to content

refactor(core): split settings into domain owners - #1265

Merged
Astro-Han merged 1 commit into
apache:mainfrom
me2seeks:refactor/1084-core-settings-split
Jul 20, 2026
Merged

refactor(core): split settings into domain owners#1265
Astro-Han merged 1 commit into
apache:mainfrom
me2seeks:refactor/1084-core-settings-split

Conversation

@me2seeks

@me2seeksme2seeks commented Jul 20, 2026

Copy link
Copy Markdown
Contributor

Summary

  • extract bot-chat types, defaults, merging, and readiness normalization into bot-chat-settings.ts, and move package-local bot consumers to that owner
  • move web-search credential reconciliation and persisted normalization into web-search.ts, together with their focused tests
  • distinguish persisted AppNetworkSettings from runtime RuntimeNetworkSettings, while keeping both existing NetworkSettings imports as deprecated compatibility aliases
  • add focused behavior coverage and an extraction contract for public compatibility, ownership, and one-way dependency direction

The existing readiness, allowlist, and credential-safety comments move with their implementations; only stale function and source-location references were updated. Runtime behavior and persisted settings shapes are unchanged.

Refs #1084.

Verification

  • npm run build — passed
  • npm run typecheck — passed
  • Core test suite — 1,130 passed, 0 failed
  • targeted Desktop bot-runtime and settings-network suites — 10 passed, 0 failed
  • npm run test:dist — passed; all workspace tests passed
  • npm run lint — passed
  • npm run format:check — passed after rebasing onto main@bfb9ba83
  • git diff origin/main...HEAD --check — passed
  • git range-diff against the pre-rebase commit — patch equivalent

Visual validation is not applicable: this is a behavior-neutral settings module extraction with no UI changes.

Review focus

  • settings.ts remains the composition and compatibility surface; package-local bot consumers import their real owner directly
  • the new bot-chat and web-search owners do not import back from settings.ts
  • the persisted and runtime network contracts now have unambiguous canonical names without breaking their previous import paths

Move bot-chat types, defaults, merging, and readiness normalization into a package-local owner, then migrate package-local consumers to the leaf while keeping the existing settings and root exports compatible.
Move web-search credential reconciliation beside its settings model and give the persisted and runtime network contracts distinct canonical names, with deprecated NetworkSettings aliases for compatibility. Add focused behavior tests and a source-boundary contract.
Behavior and persisted shapes are unchanged. Part of apache#1084.
@me2seeks
me2seeksforce-pushed the refactor/1084-core-settings-split branch from 4243813 to 1351a73CompareJuly 20, 2026 09:42
@me2seeks

Copy link
Copy Markdown
ContributorAuthor

The branches for this PR and #1261 have been rebased onto the latest green main (bfb9ba83). The new fork CI runs are waiting for maintainer approval before any jobs can start:

Could a maintainer approve both runs when convenient? Both rebases are patch-equivalent, and local build, lint, format, typecheck, and targeted package tests pass. Thanks!

@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.

No concrete findings. I checked the bot-chat and web-search moves against their original implementations, the compatibility exports from the root and settings entry points, and the persisted/runtime network aliases. The extraction preserves the existing shapes and keeps the new leaf modules independent from settings.ts. Typecheck, test, and e2e are green.

@Astro-Han
Astro-Han merged commit c1953de into apache:mainJul 20, 2026
3 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

@me2seeks@Astro-Han
, '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" + ' refactor(core): split settings into domain owners by me2seeks · Pull Request #1265 · apache/maka · GitHub
Skip to content

refactor(core): split settings into domain owners - #1265

Merged
Astro-Han merged 1 commit into
apache:mainfrom
me2seeks:refactor/1084-core-settings-split
Jul 20, 2026
Merged

refactor(core): split settings into domain owners#1265
Astro-Han merged 1 commit into
apache:mainfrom
me2seeks:refactor/1084-core-settings-split

Conversation

@me2seeks

@me2seeksme2seeks commented Jul 20, 2026

Copy link
Copy Markdown
Contributor

Summary

  • extract bot-chat types, defaults, merging, and readiness normalization into bot-chat-settings.ts, and move package-local bot consumers to that owner
  • move web-search credential reconciliation and persisted normalization into web-search.ts, together with their focused tests
  • distinguish persisted AppNetworkSettings from runtime RuntimeNetworkSettings, while keeping both existing NetworkSettings imports as deprecated compatibility aliases
  • add focused behavior coverage and an extraction contract for public compatibility, ownership, and one-way dependency direction

The existing readiness, allowlist, and credential-safety comments move with their implementations; only stale function and source-location references were updated. Runtime behavior and persisted settings shapes are unchanged.

Refs #1084.

Verification

  • npm run build — passed
  • npm run typecheck — passed
  • Core test suite — 1,130 passed, 0 failed
  • targeted Desktop bot-runtime and settings-network suites — 10 passed, 0 failed
  • npm run test:dist — passed; all workspace tests passed
  • npm run lint — passed
  • npm run format:check — passed after rebasing onto main@bfb9ba83
  • git diff origin/main...HEAD --check — passed
  • git range-diff against the pre-rebase commit — patch equivalent

Visual validation is not applicable: this is a behavior-neutral settings module extraction with no UI changes.

Review focus

  • settings.ts remains the composition and compatibility surface; package-local bot consumers import their real owner directly
  • the new bot-chat and web-search owners do not import back from settings.ts
  • the persisted and runtime network contracts now have unambiguous canonical names without breaking their previous import paths

Move bot-chat types, defaults, merging, and readiness normalization into a package-local owner, then migrate package-local consumers to the leaf while keeping the existing settings and root exports compatible.
Move web-search credential reconciliation beside its settings model and give the persisted and runtime network contracts distinct canonical names, with deprecated NetworkSettings aliases for compatibility. Add focused behavior tests and a source-boundary contract.
Behavior and persisted shapes are unchanged. Part of apache#1084.
@me2seeks
me2seeksforce-pushed the refactor/1084-core-settings-split branch from 4243813 to 1351a73CompareJuly 20, 2026 09:42
@me2seeks

Copy link
Copy Markdown
ContributorAuthor

The branches for this PR and #1261 have been rebased onto the latest green main (bfb9ba83). The new fork CI runs are waiting for maintainer approval before any jobs can start:

Could a maintainer approve both runs when convenient? Both rebases are patch-equivalent, and local build, lint, format, typecheck, and targeted package tests pass. Thanks!

@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.

No concrete findings. I checked the bot-chat and web-search moves against their original implementations, the compatibility exports from the root and settings entry points, and the persisted/runtime network aliases. The extraction preserves the existing shapes and keeps the new leaf modules independent from settings.ts. Typecheck, test, and e2e are green.

@Astro-Han
Astro-Han merged commit c1953de into apache:mainJul 20, 2026
3 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

@me2seeks@Astro-Han
, '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('^' + ".*" + ' refactor(core): split settings into domain owners by me2seeks · Pull Request #1265 · apache/maka · GitHub
Skip to content

refactor(core): split settings into domain owners - #1265

Merged
Astro-Han merged 1 commit into
apache:mainfrom
me2seeks:refactor/1084-core-settings-split
Jul 20, 2026
Merged

refactor(core): split settings into domain owners#1265
Astro-Han merged 1 commit into
apache:mainfrom
me2seeks:refactor/1084-core-settings-split

Conversation

@me2seeks

@me2seeksme2seeks commented Jul 20, 2026

Copy link
Copy Markdown
Contributor

Summary

  • extract bot-chat types, defaults, merging, and readiness normalization into bot-chat-settings.ts, and move package-local bot consumers to that owner
  • move web-search credential reconciliation and persisted normalization into web-search.ts, together with their focused tests
  • distinguish persisted AppNetworkSettings from runtime RuntimeNetworkSettings, while keeping both existing NetworkSettings imports as deprecated compatibility aliases
  • add focused behavior coverage and an extraction contract for public compatibility, ownership, and one-way dependency direction

The existing readiness, allowlist, and credential-safety comments move with their implementations; only stale function and source-location references were updated. Runtime behavior and persisted settings shapes are unchanged.

Refs #1084.

Verification

  • npm run build — passed
  • npm run typecheck — passed
  • Core test suite — 1,130 passed, 0 failed
  • targeted Desktop bot-runtime and settings-network suites — 10 passed, 0 failed
  • npm run test:dist — passed; all workspace tests passed
  • npm run lint — passed
  • npm run format:check — passed after rebasing onto main@bfb9ba83
  • git diff origin/main...HEAD --check — passed
  • git range-diff against the pre-rebase commit — patch equivalent

Visual validation is not applicable: this is a behavior-neutral settings module extraction with no UI changes.

Review focus

  • settings.ts remains the composition and compatibility surface; package-local bot consumers import their real owner directly
  • the new bot-chat and web-search owners do not import back from settings.ts
  • the persisted and runtime network contracts now have unambiguous canonical names without breaking their previous import paths

Move bot-chat types, defaults, merging, and readiness normalization into a package-local owner, then migrate package-local consumers to the leaf while keeping the existing settings and root exports compatible.
Move web-search credential reconciliation beside its settings model and give the persisted and runtime network contracts distinct canonical names, with deprecated NetworkSettings aliases for compatibility. Add focused behavior tests and a source-boundary contract.
Behavior and persisted shapes are unchanged. Part of apache#1084.
@me2seeks
me2seeksforce-pushed the refactor/1084-core-settings-split branch from 4243813 to 1351a73CompareJuly 20, 2026 09:42
@me2seeks

Copy link
Copy Markdown
ContributorAuthor

The branches for this PR and #1261 have been rebased onto the latest green main (bfb9ba83). The new fork CI runs are waiting for maintainer approval before any jobs can start:

Could a maintainer approve both runs when convenient? Both rebases are patch-equivalent, and local build, lint, format, typecheck, and targeted package tests pass. Thanks!

@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.

No concrete findings. I checked the bot-chat and web-search moves against their original implementations, the compatibility exports from the root and settings entry points, and the persisted/runtime network aliases. The extraction preserves the existing shapes and keeps the new leaf modules independent from settings.ts. Typecheck, test, and e2e are green.

@Astro-Han
Astro-Han merged commit c1953de into apache:mainJul 20, 2026
3 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

@me2seeks@Astro-Han
, '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('^' + ".*" + ' refactor(core): split settings into domain owners by me2seeks · Pull Request #1265 · apache/maka · GitHub
Skip to content

refactor(core): split settings into domain owners - #1265

Merged
Astro-Han merged 1 commit into
apache:mainfrom
me2seeks:refactor/1084-core-settings-split
Jul 20, 2026
Merged

refactor(core): split settings into domain owners#1265
Astro-Han merged 1 commit into
apache:mainfrom
me2seeks:refactor/1084-core-settings-split

Conversation

@me2seeks

@me2seeksme2seeks commented Jul 20, 2026

Copy link
Copy Markdown
Contributor

Summary

  • extract bot-chat types, defaults, merging, and readiness normalization into bot-chat-settings.ts, and move package-local bot consumers to that owner
  • move web-search credential reconciliation and persisted normalization into web-search.ts, together with their focused tests
  • distinguish persisted AppNetworkSettings from runtime RuntimeNetworkSettings, while keeping both existing NetworkSettings imports as deprecated compatibility aliases
  • add focused behavior coverage and an extraction contract for public compatibility, ownership, and one-way dependency direction

The existing readiness, allowlist, and credential-safety comments move with their implementations; only stale function and source-location references were updated. Runtime behavior and persisted settings shapes are unchanged.

Refs #1084.

Verification

  • npm run build — passed
  • npm run typecheck — passed
  • Core test suite — 1,130 passed, 0 failed
  • targeted Desktop bot-runtime and settings-network suites — 10 passed, 0 failed
  • npm run test:dist — passed; all workspace tests passed
  • npm run lint — passed
  • npm run format:check — passed after rebasing onto main@bfb9ba83
  • git diff origin/main...HEAD --check — passed
  • git range-diff against the pre-rebase commit — patch equivalent

Visual validation is not applicable: this is a behavior-neutral settings module extraction with no UI changes.

Review focus

  • settings.ts remains the composition and compatibility surface; package-local bot consumers import their real owner directly
  • the new bot-chat and web-search owners do not import back from settings.ts
  • the persisted and runtime network contracts now have unambiguous canonical names without breaking their previous import paths

Move bot-chat types, defaults, merging, and readiness normalization into a package-local owner, then migrate package-local consumers to the leaf while keeping the existing settings and root exports compatible.
Move web-search credential reconciliation beside its settings model and give the persisted and runtime network contracts distinct canonical names, with deprecated NetworkSettings aliases for compatibility. Add focused behavior tests and a source-boundary contract.
Behavior and persisted shapes are unchanged. Part of apache#1084.
@me2seeks
me2seeksforce-pushed the refactor/1084-core-settings-split branch from 4243813 to 1351a73CompareJuly 20, 2026 09:42
@me2seeks

Copy link
Copy Markdown
ContributorAuthor

The branches for this PR and #1261 have been rebased onto the latest green main (bfb9ba83). The new fork CI runs are waiting for maintainer approval before any jobs can start:

Could a maintainer approve both runs when convenient? Both rebases are patch-equivalent, and local build, lint, format, typecheck, and targeted package tests pass. Thanks!

@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.

No concrete findings. I checked the bot-chat and web-search moves against their original implementations, the compatibility exports from the root and settings entry points, and the persisted/runtime network aliases. The extraction preserves the existing shapes and keeps the new leaf modules independent from settings.ts. Typecheck, test, and e2e are green.

@Astro-Han
Astro-Han merged commit c1953de into apache:mainJul 20, 2026
3 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

@me2seeks@Astro-Han
, '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); } })(); })(); refactor(core): split settings into domain owners by me2seeks · Pull Request #1265 · apache/maka · GitHub
Skip to content

refactor(core): split settings into domain owners - #1265

Merged
Astro-Han merged 1 commit into
apache:mainfrom
me2seeks:refactor/1084-core-settings-split
Jul 20, 2026
Merged

refactor(core): split settings into domain owners#1265
Astro-Han merged 1 commit into
apache:mainfrom
me2seeks:refactor/1084-core-settings-split

Conversation

@me2seeks

@me2seeksme2seeks commented Jul 20, 2026

Copy link
Copy Markdown
Contributor

Summary

  • extract bot-chat types, defaults, merging, and readiness normalization into bot-chat-settings.ts, and move package-local bot consumers to that owner
  • move web-search credential reconciliation and persisted normalization into web-search.ts, together with their focused tests
  • distinguish persisted AppNetworkSettings from runtime RuntimeNetworkSettings, while keeping both existing NetworkSettings imports as deprecated compatibility aliases
  • add focused behavior coverage and an extraction contract for public compatibility, ownership, and one-way dependency direction

The existing readiness, allowlist, and credential-safety comments move with their implementations; only stale function and source-location references were updated. Runtime behavior and persisted settings shapes are unchanged.

Refs #1084.

Verification

  • npm run build — passed
  • npm run typecheck — passed
  • Core test suite — 1,130 passed, 0 failed
  • targeted Desktop bot-runtime and settings-network suites — 10 passed, 0 failed
  • npm run test:dist — passed; all workspace tests passed
  • npm run lint — passed
  • npm run format:check — passed after rebasing onto main@bfb9ba83
  • git diff origin/main...HEAD --check — passed
  • git range-diff against the pre-rebase commit — patch equivalent

Visual validation is not applicable: this is a behavior-neutral settings module extraction with no UI changes.

Review focus

  • settings.ts remains the composition and compatibility surface; package-local bot consumers import their real owner directly
  • the new bot-chat and web-search owners do not import back from settings.ts
  • the persisted and runtime network contracts now have unambiguous canonical names without breaking their previous import paths

Move bot-chat types, defaults, merging, and readiness normalization into a package-local owner, then migrate package-local consumers to the leaf while keeping the existing settings and root exports compatible.
Move web-search credential reconciliation beside its settings model and give the persisted and runtime network contracts distinct canonical names, with deprecated NetworkSettings aliases for compatibility. Add focused behavior tests and a source-boundary contract.
Behavior and persisted shapes are unchanged. Part of apache#1084.
@me2seeks
me2seeksforce-pushed the refactor/1084-core-settings-split branch from 4243813 to 1351a73CompareJuly 20, 2026 09:42
@me2seeks

Copy link
Copy Markdown
ContributorAuthor

The branches for this PR and #1261 have been rebased onto the latest green main (bfb9ba83). The new fork CI runs are waiting for maintainer approval before any jobs can start:

Could a maintainer approve both runs when convenient? Both rebases are patch-equivalent, and local build, lint, format, typecheck, and targeted package tests pass. Thanks!

@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.

No concrete findings. I checked the bot-chat and web-search moves against their original implementations, the compatibility exports from the root and settings entry points, and the persisted/runtime network aliases. The extraction preserves the existing shapes and keeps the new leaf modules independent from settings.ts. Typecheck, test, and e2e are green.

@Astro-Han
Astro-Han merged commit c1953de into apache:mainJul 20, 2026
3 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

@me2seeks@Astro-Han