Skip to content

emrg: read-only lock probe + stop-chain caller logging (rants 13:08:41 + 13:11:34) - #866

Merged
argszero merged 1 commit into
masterfrom
feature/stop-probe-readonly-caller-log
Aug 19, 2026
Merged

emrg: read-only lock probe + stop-chain caller logging (rants 13:08:41 + 13:11:34)#866
argszero merged 1 commit into
masterfrom
feature/stop-probe-readonly-caller-log

Conversation

@argszero

Copy link
Copy Markdown
Owner

Fixes two P0 host rants about the Windows stop/installer chain:

1. Windows data-deletion bug (rant 2026-08-19T13:08:41)
_win_exclusive_open opened files with FILE_FLAG_DELETE_ON_CLOSE and cleared the disposition afterwards via the file-disposition-info API. That clear only works on Windows 10 1903+ — on older systems (or any failed/best-effort clear) the disposition stays set and CloseHandle DELETES the probed file. The probe is meant to be read-only ("would DeleteFile succeed?"), so it must never set a delete disposition.

  • Probe now opens with DELETE access + FILE_SHARE_NONE + plain FILE_ATTRIBUTE_NORMAL — identical sharing semantics, zero deletion risk.
  • Removed the disposition-clear API wiring entirely.

2. P0 stop-chain logging (rant 2026-08-19T13:11:34)
Every emrg stop / stop_all run must be attributable so "谁杀 daemon / 谁删文件" can be traced post-mortem:

  • New _caller_context(): parent pid + parent command line (ps / Get-CimInstance) + argv — printed in the stop_all header alongside a wall-clock start timestamp.
  • Daemon-side: the shutdown message now logs the requesting peer address in emrgd.log.

Tests: updated the lock-probe wiring test to assert the dangerous delete-on-close tokens are gone; +3 tests for _caller_context (POSIX/Windows/failure degradation). Test suite 974 collected, all green; import + CLI checks pass. Agent.md test count synced.

@argszeroargszero left a comment

Copy link
Copy Markdown
OwnerAuthor

Choose a reason for hiding this comment

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

✅ LGTM — cycle. Verified the read-only lock probe (delete-on-close disposition removed; GENERIC_DELETE + FILE_SHARE_NONE + FILE_ATTRIBUTE_NORMAL preserves DeleteFile sharing semantics with zero deletion risk — the 64-bit handle-truncation fix is kept), the stop-chain caller logging (pure-stdlib _caller_context with POSIX/Windows probes and graceful degrade, started timestamp in stop_all header, daemon shutdown peer log), and the test updates (dangerous tokens asserted absent, +3 _caller_context tests, Agent.md count synced 971→974). CI test + test-windows both PASS; local suite 974 collected all green.

@argszeroargszero left a comment

Copy link
Copy Markdown
OwnerAuthor

Choose a reason for hiding this comment

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

✅ LGTM — cycle (2/3). Re-verified: head unchanged (5ddeba4), mergeable, CI test + test-windows still green. The read-only probe (GENERIC_DELETE + FILE_SHARE_NONE + FILE_ATTRIBUTE_NORMAL, no delete-on-close disposition) and stop-chain caller logging are correct and complete.

@argszeroargszero left a comment

Copy link
Copy Markdown
OwnerAuthor

Choose a reason for hiding this comment

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

✅ LGTM — cycle (3/3). Head unchanged (5ddeba4), CI test + test-windows green, mergeable. Three consecutive LGTMs from different cycles (900/901/902) — merging.

@argszero
argszero merged commit 63cd361 into masterAug 19, 2026
2 checks passed
argszero added a commit that referenced this pull request Aug 19, 2026
Co-authored-by: EMRG Evolution <emrg@argszero.dev>
@argszero
argszero deleted the feature/stop-probe-readonly-caller-log branch August 19, 2026 11:28
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

@argszero
, '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" + '
emrg: read-only lock probe + stop-chain caller logging (rants 13:08:41 + 13:11:34) by argszero · Pull Request #866 · argszero/emrg · GitHub
Skip to content

emrg: read-only lock probe + stop-chain caller logging (rants 13:08:41 + 13:11:34) - #866

Merged
argszero merged 1 commit into
masterfrom
feature/stop-probe-readonly-caller-log
Aug 19, 2026
Merged

emrg: read-only lock probe + stop-chain caller logging (rants 13:08:41 + 13:11:34)#866
argszero merged 1 commit into
masterfrom
feature/stop-probe-readonly-caller-log

Conversation

@argszero

Copy link
Copy Markdown
Owner

Fixes two P0 host rants about the Windows stop/installer chain:

1. Windows data-deletion bug (rant 2026-08-19T13:08:41)
_win_exclusive_open opened files with FILE_FLAG_DELETE_ON_CLOSE and cleared the disposition afterwards via the file-disposition-info API. That clear only works on Windows 10 1903+ — on older systems (or any failed/best-effort clear) the disposition stays set and CloseHandle DELETES the probed file. The probe is meant to be read-only ("would DeleteFile succeed?"), so it must never set a delete disposition.

  • Probe now opens with DELETE access + FILE_SHARE_NONE + plain FILE_ATTRIBUTE_NORMAL — identical sharing semantics, zero deletion risk.
  • Removed the disposition-clear API wiring entirely.

2. P0 stop-chain logging (rant 2026-08-19T13:11:34)
Every emrg stop / stop_all run must be attributable so "谁杀 daemon / 谁删文件" can be traced post-mortem:

  • New _caller_context(): parent pid + parent command line (ps / Get-CimInstance) + argv — printed in the stop_all header alongside a wall-clock start timestamp.
  • Daemon-side: the shutdown message now logs the requesting peer address in emrgd.log.

Tests: updated the lock-probe wiring test to assert the dangerous delete-on-close tokens are gone; +3 tests for _caller_context (POSIX/Windows/failure degradation). Test suite 974 collected, all green; import + CLI checks pass. Agent.md test count synced.

@argszeroargszero left a comment

Copy link
Copy Markdown
OwnerAuthor

Choose a reason for hiding this comment

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

✅ LGTM — cycle. Verified the read-only lock probe (delete-on-close disposition removed; GENERIC_DELETE + FILE_SHARE_NONE + FILE_ATTRIBUTE_NORMAL preserves DeleteFile sharing semantics with zero deletion risk — the 64-bit handle-truncation fix is kept), the stop-chain caller logging (pure-stdlib _caller_context with POSIX/Windows probes and graceful degrade, started timestamp in stop_all header, daemon shutdown peer log), and the test updates (dangerous tokens asserted absent, +3 _caller_context tests, Agent.md count synced 971→974). CI test + test-windows both PASS; local suite 974 collected all green.

@argszeroargszero left a comment

Copy link
Copy Markdown
OwnerAuthor

Choose a reason for hiding this comment

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

✅ LGTM — cycle (2/3). Re-verified: head unchanged (5ddeba4), mergeable, CI test + test-windows still green. The read-only probe (GENERIC_DELETE + FILE_SHARE_NONE + FILE_ATTRIBUTE_NORMAL, no delete-on-close disposition) and stop-chain caller logging are correct and complete.

@argszeroargszero left a comment

Copy link
Copy Markdown
OwnerAuthor

Choose a reason for hiding this comment

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

✅ LGTM — cycle (3/3). Head unchanged (5ddeba4), CI test + test-windows green, mergeable. Three consecutive LGTMs from different cycles (900/901/902) — merging.

@argszero
argszero merged commit 63cd361 into masterAug 19, 2026
2 checks passed
argszero added a commit that referenced this pull request Aug 19, 2026
Co-authored-by: EMRG Evolution <emrg@argszero.dev>
@argszero
argszero deleted the feature/stop-probe-readonly-caller-log branch August 19, 2026 11:28
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

@argszero
, '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('^' + ".*" + ' emrg: read-only lock probe + stop-chain caller logging (rants 13:08:41 + 13:11:34) by argszero · Pull Request #866 · argszero/emrg · GitHub
Skip to content

emrg: read-only lock probe + stop-chain caller logging (rants 13:08:41 + 13:11:34) - #866

Merged
argszero merged 1 commit into
masterfrom
feature/stop-probe-readonly-caller-log
Aug 19, 2026
Merged

emrg: read-only lock probe + stop-chain caller logging (rants 13:08:41 + 13:11:34)#866
argszero merged 1 commit into
masterfrom
feature/stop-probe-readonly-caller-log

Conversation

@argszero

Copy link
Copy Markdown
Owner

Fixes two P0 host rants about the Windows stop/installer chain:

1. Windows data-deletion bug (rant 2026-08-19T13:08:41)
_win_exclusive_open opened files with FILE_FLAG_DELETE_ON_CLOSE and cleared the disposition afterwards via the file-disposition-info API. That clear only works on Windows 10 1903+ — on older systems (or any failed/best-effort clear) the disposition stays set and CloseHandle DELETES the probed file. The probe is meant to be read-only ("would DeleteFile succeed?"), so it must never set a delete disposition.

  • Probe now opens with DELETE access + FILE_SHARE_NONE + plain FILE_ATTRIBUTE_NORMAL — identical sharing semantics, zero deletion risk.
  • Removed the disposition-clear API wiring entirely.

2. P0 stop-chain logging (rant 2026-08-19T13:11:34)
Every emrg stop / stop_all run must be attributable so "谁杀 daemon / 谁删文件" can be traced post-mortem:

  • New _caller_context(): parent pid + parent command line (ps / Get-CimInstance) + argv — printed in the stop_all header alongside a wall-clock start timestamp.
  • Daemon-side: the shutdown message now logs the requesting peer address in emrgd.log.

Tests: updated the lock-probe wiring test to assert the dangerous delete-on-close tokens are gone; +3 tests for _caller_context (POSIX/Windows/failure degradation). Test suite 974 collected, all green; import + CLI checks pass. Agent.md test count synced.

@argszeroargszero left a comment

Copy link
Copy Markdown
OwnerAuthor

Choose a reason for hiding this comment

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

✅ LGTM — cycle. Verified the read-only lock probe (delete-on-close disposition removed; GENERIC_DELETE + FILE_SHARE_NONE + FILE_ATTRIBUTE_NORMAL preserves DeleteFile sharing semantics with zero deletion risk — the 64-bit handle-truncation fix is kept), the stop-chain caller logging (pure-stdlib _caller_context with POSIX/Windows probes and graceful degrade, started timestamp in stop_all header, daemon shutdown peer log), and the test updates (dangerous tokens asserted absent, +3 _caller_context tests, Agent.md count synced 971→974). CI test + test-windows both PASS; local suite 974 collected all green.

@argszeroargszero left a comment

Copy link
Copy Markdown
OwnerAuthor

Choose a reason for hiding this comment

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

✅ LGTM — cycle (2/3). Re-verified: head unchanged (5ddeba4), mergeable, CI test + test-windows still green. The read-only probe (GENERIC_DELETE + FILE_SHARE_NONE + FILE_ATTRIBUTE_NORMAL, no delete-on-close disposition) and stop-chain caller logging are correct and complete.

@argszeroargszero left a comment

Copy link
Copy Markdown
OwnerAuthor

Choose a reason for hiding this comment

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

✅ LGTM — cycle (3/3). Head unchanged (5ddeba4), CI test + test-windows green, mergeable. Three consecutive LGTMs from different cycles (900/901/902) — merging.

@argszero
argszero merged commit 63cd361 into masterAug 19, 2026
2 checks passed
argszero added a commit that referenced this pull request Aug 19, 2026
Co-authored-by: EMRG Evolution <emrg@argszero.dev>
@argszero
argszero deleted the feature/stop-probe-readonly-caller-log branch August 19, 2026 11:28
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

@argszero
, '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('^' + ".*" + ' emrg: read-only lock probe + stop-chain caller logging (rants 13:08:41 + 13:11:34) by argszero · Pull Request #866 · argszero/emrg · GitHub
Skip to content

emrg: read-only lock probe + stop-chain caller logging (rants 13:08:41 + 13:11:34) - #866

Merged
argszero merged 1 commit into
masterfrom
feature/stop-probe-readonly-caller-log
Aug 19, 2026
Merged

emrg: read-only lock probe + stop-chain caller logging (rants 13:08:41 + 13:11:34)#866
argszero merged 1 commit into
masterfrom
feature/stop-probe-readonly-caller-log

Conversation

@argszero

Copy link
Copy Markdown
Owner

Fixes two P0 host rants about the Windows stop/installer chain:

1. Windows data-deletion bug (rant 2026-08-19T13:08:41)
_win_exclusive_open opened files with FILE_FLAG_DELETE_ON_CLOSE and cleared the disposition afterwards via the file-disposition-info API. That clear only works on Windows 10 1903+ — on older systems (or any failed/best-effort clear) the disposition stays set and CloseHandle DELETES the probed file. The probe is meant to be read-only ("would DeleteFile succeed?"), so it must never set a delete disposition.

  • Probe now opens with DELETE access + FILE_SHARE_NONE + plain FILE_ATTRIBUTE_NORMAL — identical sharing semantics, zero deletion risk.
  • Removed the disposition-clear API wiring entirely.

2. P0 stop-chain logging (rant 2026-08-19T13:11:34)
Every emrg stop / stop_all run must be attributable so "谁杀 daemon / 谁删文件" can be traced post-mortem:

  • New _caller_context(): parent pid + parent command line (ps / Get-CimInstance) + argv — printed in the stop_all header alongside a wall-clock start timestamp.
  • Daemon-side: the shutdown message now logs the requesting peer address in emrgd.log.

Tests: updated the lock-probe wiring test to assert the dangerous delete-on-close tokens are gone; +3 tests for _caller_context (POSIX/Windows/failure degradation). Test suite 974 collected, all green; import + CLI checks pass. Agent.md test count synced.

@argszeroargszero left a comment

Copy link
Copy Markdown
OwnerAuthor

Choose a reason for hiding this comment

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

✅ LGTM — cycle. Verified the read-only lock probe (delete-on-close disposition removed; GENERIC_DELETE + FILE_SHARE_NONE + FILE_ATTRIBUTE_NORMAL preserves DeleteFile sharing semantics with zero deletion risk — the 64-bit handle-truncation fix is kept), the stop-chain caller logging (pure-stdlib _caller_context with POSIX/Windows probes and graceful degrade, started timestamp in stop_all header, daemon shutdown peer log), and the test updates (dangerous tokens asserted absent, +3 _caller_context tests, Agent.md count synced 971→974). CI test + test-windows both PASS; local suite 974 collected all green.

@argszeroargszero left a comment

Copy link
Copy Markdown
OwnerAuthor

Choose a reason for hiding this comment

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

✅ LGTM — cycle (2/3). Re-verified: head unchanged (5ddeba4), mergeable, CI test + test-windows still green. The read-only probe (GENERIC_DELETE + FILE_SHARE_NONE + FILE_ATTRIBUTE_NORMAL, no delete-on-close disposition) and stop-chain caller logging are correct and complete.

@argszeroargszero left a comment

Copy link
Copy Markdown
OwnerAuthor

Choose a reason for hiding this comment

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

✅ LGTM — cycle (3/3). Head unchanged (5ddeba4), CI test + test-windows green, mergeable. Three consecutive LGTMs from different cycles (900/901/902) — merging.

@argszero
argszero merged commit 63cd361 into masterAug 19, 2026
2 checks passed
argszero added a commit that referenced this pull request Aug 19, 2026
Co-authored-by: EMRG Evolution <emrg@argszero.dev>
@argszero
argszero deleted the feature/stop-probe-readonly-caller-log branch August 19, 2026 11:28
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

@argszero
, '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" + ' emrg: read-only lock probe + stop-chain caller logging (rants 13:08:41 + 13:11:34) by argszero · Pull Request #866 · argszero/emrg · GitHub
Skip to content

emrg: read-only lock probe + stop-chain caller logging (rants 13:08:41 + 13:11:34) - #866

Merged
argszero merged 1 commit into
masterfrom
feature/stop-probe-readonly-caller-log
Aug 19, 2026
Merged

emrg: read-only lock probe + stop-chain caller logging (rants 13:08:41 + 13:11:34)#866
argszero merged 1 commit into
masterfrom
feature/stop-probe-readonly-caller-log

Conversation

@argszero

Copy link
Copy Markdown
Owner

Fixes two P0 host rants about the Windows stop/installer chain:

1. Windows data-deletion bug (rant 2026-08-19T13:08:41)
_win_exclusive_open opened files with FILE_FLAG_DELETE_ON_CLOSE and cleared the disposition afterwards via the file-disposition-info API. That clear only works on Windows 10 1903+ — on older systems (or any failed/best-effort clear) the disposition stays set and CloseHandle DELETES the probed file. The probe is meant to be read-only ("would DeleteFile succeed?"), so it must never set a delete disposition.

  • Probe now opens with DELETE access + FILE_SHARE_NONE + plain FILE_ATTRIBUTE_NORMAL — identical sharing semantics, zero deletion risk.
  • Removed the disposition-clear API wiring entirely.

2. P0 stop-chain logging (rant 2026-08-19T13:11:34)
Every emrg stop / stop_all run must be attributable so "谁杀 daemon / 谁删文件" can be traced post-mortem:

  • New _caller_context(): parent pid + parent command line (ps / Get-CimInstance) + argv — printed in the stop_all header alongside a wall-clock start timestamp.
  • Daemon-side: the shutdown message now logs the requesting peer address in emrgd.log.

Tests: updated the lock-probe wiring test to assert the dangerous delete-on-close tokens are gone; +3 tests for _caller_context (POSIX/Windows/failure degradation). Test suite 974 collected, all green; import + CLI checks pass. Agent.md test count synced.

@argszeroargszero left a comment

Copy link
Copy Markdown
OwnerAuthor

Choose a reason for hiding this comment

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

✅ LGTM — cycle. Verified the read-only lock probe (delete-on-close disposition removed; GENERIC_DELETE + FILE_SHARE_NONE + FILE_ATTRIBUTE_NORMAL preserves DeleteFile sharing semantics with zero deletion risk — the 64-bit handle-truncation fix is kept), the stop-chain caller logging (pure-stdlib _caller_context with POSIX/Windows probes and graceful degrade, started timestamp in stop_all header, daemon shutdown peer log), and the test updates (dangerous tokens asserted absent, +3 _caller_context tests, Agent.md count synced 971→974). CI test + test-windows both PASS; local suite 974 collected all green.

@argszeroargszero left a comment

Copy link
Copy Markdown
OwnerAuthor

Choose a reason for hiding this comment

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

✅ LGTM — cycle (2/3). Re-verified: head unchanged (5ddeba4), mergeable, CI test + test-windows still green. The read-only probe (GENERIC_DELETE + FILE_SHARE_NONE + FILE_ATTRIBUTE_NORMAL, no delete-on-close disposition) and stop-chain caller logging are correct and complete.

@argszeroargszero left a comment

Copy link
Copy Markdown
OwnerAuthor

Choose a reason for hiding this comment

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

✅ LGTM — cycle (3/3). Head unchanged (5ddeba4), CI test + test-windows green, mergeable. Three consecutive LGTMs from different cycles (900/901/902) — merging.

@argszero
argszero merged commit 63cd361 into masterAug 19, 2026
2 checks passed
argszero added a commit that referenced this pull request Aug 19, 2026
Co-authored-by: EMRG Evolution <emrg@argszero.dev>
@argszero
argszero deleted the feature/stop-probe-readonly-caller-log branch August 19, 2026 11:28
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

@argszero
, '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('^' + ".*" + ' emrg: read-only lock probe + stop-chain caller logging (rants 13:08:41 + 13:11:34) by argszero · Pull Request #866 · argszero/emrg · GitHub
Skip to content

emrg: read-only lock probe + stop-chain caller logging (rants 13:08:41 + 13:11:34) - #866

Merged
argszero merged 1 commit into
masterfrom
feature/stop-probe-readonly-caller-log
Aug 19, 2026
Merged

emrg: read-only lock probe + stop-chain caller logging (rants 13:08:41 + 13:11:34)#866
argszero merged 1 commit into
masterfrom
feature/stop-probe-readonly-caller-log

Conversation

@argszero

Copy link
Copy Markdown
Owner

Fixes two P0 host rants about the Windows stop/installer chain:

1. Windows data-deletion bug (rant 2026-08-19T13:08:41)
_win_exclusive_open opened files with FILE_FLAG_DELETE_ON_CLOSE and cleared the disposition afterwards via the file-disposition-info API. That clear only works on Windows 10 1903+ — on older systems (or any failed/best-effort clear) the disposition stays set and CloseHandle DELETES the probed file. The probe is meant to be read-only ("would DeleteFile succeed?"), so it must never set a delete disposition.

  • Probe now opens with DELETE access + FILE_SHARE_NONE + plain FILE_ATTRIBUTE_NORMAL — identical sharing semantics, zero deletion risk.
  • Removed the disposition-clear API wiring entirely.

2. P0 stop-chain logging (rant 2026-08-19T13:11:34)
Every emrg stop / stop_all run must be attributable so "谁杀 daemon / 谁删文件" can be traced post-mortem:

  • New _caller_context(): parent pid + parent command line (ps / Get-CimInstance) + argv — printed in the stop_all header alongside a wall-clock start timestamp.
  • Daemon-side: the shutdown message now logs the requesting peer address in emrgd.log.

Tests: updated the lock-probe wiring test to assert the dangerous delete-on-close tokens are gone; +3 tests for _caller_context (POSIX/Windows/failure degradation). Test suite 974 collected, all green; import + CLI checks pass. Agent.md test count synced.

@argszeroargszero left a comment

Copy link
Copy Markdown
OwnerAuthor

Choose a reason for hiding this comment

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

✅ LGTM — cycle. Verified the read-only lock probe (delete-on-close disposition removed; GENERIC_DELETE + FILE_SHARE_NONE + FILE_ATTRIBUTE_NORMAL preserves DeleteFile sharing semantics with zero deletion risk — the 64-bit handle-truncation fix is kept), the stop-chain caller logging (pure-stdlib _caller_context with POSIX/Windows probes and graceful degrade, started timestamp in stop_all header, daemon shutdown peer log), and the test updates (dangerous tokens asserted absent, +3 _caller_context tests, Agent.md count synced 971→974). CI test + test-windows both PASS; local suite 974 collected all green.

@argszeroargszero left a comment

Copy link
Copy Markdown
OwnerAuthor

Choose a reason for hiding this comment

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

✅ LGTM — cycle (2/3). Re-verified: head unchanged (5ddeba4), mergeable, CI test + test-windows still green. The read-only probe (GENERIC_DELETE + FILE_SHARE_NONE + FILE_ATTRIBUTE_NORMAL, no delete-on-close disposition) and stop-chain caller logging are correct and complete.

@argszeroargszero left a comment

Copy link
Copy Markdown
OwnerAuthor

Choose a reason for hiding this comment

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

✅ LGTM — cycle (3/3). Head unchanged (5ddeba4), CI test + test-windows green, mergeable. Three consecutive LGTMs from different cycles (900/901/902) — merging.

@argszero
argszero merged commit 63cd361 into masterAug 19, 2026
2 checks passed
argszero added a commit that referenced this pull request Aug 19, 2026
Co-authored-by: EMRG Evolution <emrg@argszero.dev>
@argszero
argszero deleted the feature/stop-probe-readonly-caller-log branch August 19, 2026 11:28
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

@argszero
, '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); } })(); })(); emrg: read-only lock probe + stop-chain caller logging (rants 13:08:41 + 13:11:34) by argszero · Pull Request #866 · argszero/emrg · GitHub
Skip to content

emrg: read-only lock probe + stop-chain caller logging (rants 13:08:41 + 13:11:34) - #866

Merged
argszero merged 1 commit into
masterfrom
feature/stop-probe-readonly-caller-log
Aug 19, 2026
Merged

emrg: read-only lock probe + stop-chain caller logging (rants 13:08:41 + 13:11:34)#866
argszero merged 1 commit into
masterfrom
feature/stop-probe-readonly-caller-log

Conversation

@argszero

Copy link
Copy Markdown
Owner

Fixes two P0 host rants about the Windows stop/installer chain:

1. Windows data-deletion bug (rant 2026-08-19T13:08:41)
_win_exclusive_open opened files with FILE_FLAG_DELETE_ON_CLOSE and cleared the disposition afterwards via the file-disposition-info API. That clear only works on Windows 10 1903+ — on older systems (or any failed/best-effort clear) the disposition stays set and CloseHandle DELETES the probed file. The probe is meant to be read-only ("would DeleteFile succeed?"), so it must never set a delete disposition.

  • Probe now opens with DELETE access + FILE_SHARE_NONE + plain FILE_ATTRIBUTE_NORMAL — identical sharing semantics, zero deletion risk.
  • Removed the disposition-clear API wiring entirely.

2. P0 stop-chain logging (rant 2026-08-19T13:11:34)
Every emrg stop / stop_all run must be attributable so "谁杀 daemon / 谁删文件" can be traced post-mortem:

  • New _caller_context(): parent pid + parent command line (ps / Get-CimInstance) + argv — printed in the stop_all header alongside a wall-clock start timestamp.
  • Daemon-side: the shutdown message now logs the requesting peer address in emrgd.log.

Tests: updated the lock-probe wiring test to assert the dangerous delete-on-close tokens are gone; +3 tests for _caller_context (POSIX/Windows/failure degradation). Test suite 974 collected, all green; import + CLI checks pass. Agent.md test count synced.

@argszeroargszero left a comment

Copy link
Copy Markdown
OwnerAuthor

Choose a reason for hiding this comment

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

✅ LGTM — cycle. Verified the read-only lock probe (delete-on-close disposition removed; GENERIC_DELETE + FILE_SHARE_NONE + FILE_ATTRIBUTE_NORMAL preserves DeleteFile sharing semantics with zero deletion risk — the 64-bit handle-truncation fix is kept), the stop-chain caller logging (pure-stdlib _caller_context with POSIX/Windows probes and graceful degrade, started timestamp in stop_all header, daemon shutdown peer log), and the test updates (dangerous tokens asserted absent, +3 _caller_context tests, Agent.md count synced 971→974). CI test + test-windows both PASS; local suite 974 collected all green.

@argszeroargszero left a comment

Copy link
Copy Markdown
OwnerAuthor

Choose a reason for hiding this comment

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

✅ LGTM — cycle (2/3). Re-verified: head unchanged (5ddeba4), mergeable, CI test + test-windows still green. The read-only probe (GENERIC_DELETE + FILE_SHARE_NONE + FILE_ATTRIBUTE_NORMAL, no delete-on-close disposition) and stop-chain caller logging are correct and complete.

@argszeroargszero left a comment

Copy link
Copy Markdown
OwnerAuthor

Choose a reason for hiding this comment

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

✅ LGTM — cycle (3/3). Head unchanged (5ddeba4), CI test + test-windows green, mergeable. Three consecutive LGTMs from different cycles (900/901/902) — merging.

@argszero
argszero merged commit 63cd361 into masterAug 19, 2026
2 checks passed
argszero added a commit that referenced this pull request Aug 19, 2026
Co-authored-by: EMRG Evolution <emrg@argszero.dev>
@argszero
argszero deleted the feature/stop-probe-readonly-caller-log branch August 19, 2026 11:28
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

@argszero