[DO NOT MERGE] feat(server): fork Codex threads at checkpoints - #7

Draft
sameerr03 wants to merge 2 commits into
archive/01-destructive-cleanupfrom
fork/01-codex-workspace-workflow
Draft

[DO NOT MERGE] feat(server): fork Codex threads at checkpoints#7
sameerr03 wants to merge 2 commits into
archive/01-destructive-cleanupfrom
fork/01-codex-workspace-workflow

Conversation

@sameerr03

@sameerr03sameerr03 commented Aug 20, 2026

Copy link
Copy Markdown
Owner

Warning

DO NOT MERGE — personal-fork V1 experiment.

This is the backend half of the Codex edit/fork feature stack. It is based on #5 because both features coordinate destructive worktree lifecycle operations through the same server semaphore; it does not depend on the commands, selected-reply, or mobile stacks.

The problem: a fork must keep the selected conversation boundary and repository filesystem at the same point. Message order alone is not enough because Codex supports queued follow-ups and provider starts can fail before a turn exists.

How this works:

  • adds a typed, operate-scoped thread-fork RPC for Codex
  • resolves the exact provider-turn boundary, refusing missing, running, or non-ready checkpoints
  • creates an isolated branch/worktree and restores the selected checkpoint there
  • uses Codex thread/fork for native conversation context and binds it to the child thread
  • records durable parent lineage without copying T3 event history
  • compensates the thread, terminal, locked/partial worktree, and branch if creation, setup, or native forking fails

Validation:

  • server and contracts typechecks
  • 82 projection, provider-service, and Codex-adapter tests
  • 49 authorization and orchestration contract tests
  • focused WebSocket fork/boundary/cleanup tests
  • real Git test proving forced cleanup removes a locked worktree
  • real T3 web-client run proving an assistant fork retained native context and left the parent unchanged
  • targeted lint and formatting checks
  • adversarial review: no remaining correctness or data-loss findings

The real-client pass caught a Git timeout that occurred after a worktree was partially created. Follow-up commit 38fd5b0e7 precomputes the exact worktree path and compensates even when create returns an error; the reproduction artifact was removed.

Stack:

Built with GPT-5.6-Sol through the Codex harness in T3 Code.

@github-actionsgithub-actionsBot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:XL labels Aug 20, 2026
@sameerr03
sameerr03force-pushed the fork/01-codex-workspace-workflow branch from 56e87de to 38fd5b0CompareAugust 20, 2026 04:26
@sameerr03
sameerr03 changed the base branch from mobile/01-done-notifications to archive/01-destructive-cleanupAugust 20, 2026 04:26
@github-actions

Copy link
Copy Markdown

Thread transfer impact

⚠️ The latest CI run did not produce a thread transfer result for 38fd5b0.

This comment will update automatically after the next completed run.

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:XXLvouch:trustedPR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

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

[DO NOT MERGE] feat(server): fork Codex threads at checkpoints - #7

Draft
sameerr03 wants to merge 2 commits into
archive/01-destructive-cleanupfrom
fork/01-codex-workspace-workflow
Draft

[DO NOT MERGE] feat(server): fork Codex threads at checkpoints#7
sameerr03 wants to merge 2 commits into
archive/01-destructive-cleanupfrom
fork/01-codex-workspace-workflow

Conversation

@sameerr03

@sameerr03sameerr03 commented Aug 20, 2026

Copy link
Copy Markdown
Owner

Warning

DO NOT MERGE — personal-fork V1 experiment.

This is the backend half of the Codex edit/fork feature stack. It is based on #5 because both features coordinate destructive worktree lifecycle operations through the same server semaphore; it does not depend on the commands, selected-reply, or mobile stacks.

The problem: a fork must keep the selected conversation boundary and repository filesystem at the same point. Message order alone is not enough because Codex supports queued follow-ups and provider starts can fail before a turn exists.

How this works:

  • adds a typed, operate-scoped thread-fork RPC for Codex
  • resolves the exact provider-turn boundary, refusing missing, running, or non-ready checkpoints
  • creates an isolated branch/worktree and restores the selected checkpoint there
  • uses Codex thread/fork for native conversation context and binds it to the child thread
  • records durable parent lineage without copying T3 event history
  • compensates the thread, terminal, locked/partial worktree, and branch if creation, setup, or native forking fails

Validation:

  • server and contracts typechecks
  • 82 projection, provider-service, and Codex-adapter tests
  • 49 authorization and orchestration contract tests
  • focused WebSocket fork/boundary/cleanup tests
  • real Git test proving forced cleanup removes a locked worktree
  • real T3 web-client run proving an assistant fork retained native context and left the parent unchanged
  • targeted lint and formatting checks
  • adversarial review: no remaining correctness or data-loss findings

The real-client pass caught a Git timeout that occurred after a worktree was partially created. Follow-up commit 38fd5b0e7 precomputes the exact worktree path and compensates even when create returns an error; the reproduction artifact was removed.

Stack:

Built with GPT-5.6-Sol through the Codex harness in T3 Code.

@github-actionsgithub-actionsBot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:XL labels Aug 20, 2026
@sameerr03
sameerr03force-pushed the fork/01-codex-workspace-workflow branch from 56e87de to 38fd5b0CompareAugust 20, 2026 04:26
@sameerr03
sameerr03 changed the base branch from mobile/01-done-notifications to archive/01-destructive-cleanupAugust 20, 2026 04:26
@github-actions

Copy link
Copy Markdown

Thread transfer impact

⚠️ The latest CI run did not produce a thread transfer result for 38fd5b0.

This comment will update automatically after the next completed run.

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:XXLvouch:trustedPR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

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

[DO NOT MERGE] feat(server): fork Codex threads at checkpoints - #7

Draft
sameerr03 wants to merge 2 commits into
archive/01-destructive-cleanupfrom
fork/01-codex-workspace-workflow
Draft

[DO NOT MERGE] feat(server): fork Codex threads at checkpoints#7
sameerr03 wants to merge 2 commits into
archive/01-destructive-cleanupfrom
fork/01-codex-workspace-workflow

Conversation

@sameerr03

@sameerr03sameerr03 commented Aug 20, 2026

Copy link
Copy Markdown
Owner

Warning

DO NOT MERGE — personal-fork V1 experiment.

This is the backend half of the Codex edit/fork feature stack. It is based on #5 because both features coordinate destructive worktree lifecycle operations through the same server semaphore; it does not depend on the commands, selected-reply, or mobile stacks.

The problem: a fork must keep the selected conversation boundary and repository filesystem at the same point. Message order alone is not enough because Codex supports queued follow-ups and provider starts can fail before a turn exists.

How this works:

  • adds a typed, operate-scoped thread-fork RPC for Codex
  • resolves the exact provider-turn boundary, refusing missing, running, or non-ready checkpoints
  • creates an isolated branch/worktree and restores the selected checkpoint there
  • uses Codex thread/fork for native conversation context and binds it to the child thread
  • records durable parent lineage without copying T3 event history
  • compensates the thread, terminal, locked/partial worktree, and branch if creation, setup, or native forking fails

Validation:

  • server and contracts typechecks
  • 82 projection, provider-service, and Codex-adapter tests
  • 49 authorization and orchestration contract tests
  • focused WebSocket fork/boundary/cleanup tests
  • real Git test proving forced cleanup removes a locked worktree
  • real T3 web-client run proving an assistant fork retained native context and left the parent unchanged
  • targeted lint and formatting checks
  • adversarial review: no remaining correctness or data-loss findings

The real-client pass caught a Git timeout that occurred after a worktree was partially created. Follow-up commit 38fd5b0e7 precomputes the exact worktree path and compensates even when create returns an error; the reproduction artifact was removed.

Stack:

Built with GPT-5.6-Sol through the Codex harness in T3 Code.

@github-actionsgithub-actionsBot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:XL labels Aug 20, 2026
@sameerr03
sameerr03force-pushed the fork/01-codex-workspace-workflow branch from 56e87de to 38fd5b0CompareAugust 20, 2026 04:26
@sameerr03
sameerr03 changed the base branch from mobile/01-done-notifications to archive/01-destructive-cleanupAugust 20, 2026 04:26
@github-actions

Copy link
Copy Markdown

Thread transfer impact

⚠️ The latest CI run did not produce a thread transfer result for 38fd5b0.

This comment will update automatically after the next completed run.

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:XXLvouch:trustedPR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

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

[DO NOT MERGE] feat(server): fork Codex threads at checkpoints - #7

Draft
sameerr03 wants to merge 2 commits into
archive/01-destructive-cleanupfrom
fork/01-codex-workspace-workflow
Draft

[DO NOT MERGE] feat(server): fork Codex threads at checkpoints#7
sameerr03 wants to merge 2 commits into
archive/01-destructive-cleanupfrom
fork/01-codex-workspace-workflow

Conversation

@sameerr03

@sameerr03sameerr03 commented Aug 20, 2026

Copy link
Copy Markdown
Owner

Warning

DO NOT MERGE — personal-fork V1 experiment.

This is the backend half of the Codex edit/fork feature stack. It is based on #5 because both features coordinate destructive worktree lifecycle operations through the same server semaphore; it does not depend on the commands, selected-reply, or mobile stacks.

The problem: a fork must keep the selected conversation boundary and repository filesystem at the same point. Message order alone is not enough because Codex supports queued follow-ups and provider starts can fail before a turn exists.

How this works:

  • adds a typed, operate-scoped thread-fork RPC for Codex
  • resolves the exact provider-turn boundary, refusing missing, running, or non-ready checkpoints
  • creates an isolated branch/worktree and restores the selected checkpoint there
  • uses Codex thread/fork for native conversation context and binds it to the child thread
  • records durable parent lineage without copying T3 event history
  • compensates the thread, terminal, locked/partial worktree, and branch if creation, setup, or native forking fails

Validation:

  • server and contracts typechecks
  • 82 projection, provider-service, and Codex-adapter tests
  • 49 authorization and orchestration contract tests
  • focused WebSocket fork/boundary/cleanup tests
  • real Git test proving forced cleanup removes a locked worktree
  • real T3 web-client run proving an assistant fork retained native context and left the parent unchanged
  • targeted lint and formatting checks
  • adversarial review: no remaining correctness or data-loss findings

The real-client pass caught a Git timeout that occurred after a worktree was partially created. Follow-up commit 38fd5b0e7 precomputes the exact worktree path and compensates even when create returns an error; the reproduction artifact was removed.

Stack:

Built with GPT-5.6-Sol through the Codex harness in T3 Code.

@github-actionsgithub-actionsBot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:XL labels Aug 20, 2026
@sameerr03
sameerr03force-pushed the fork/01-codex-workspace-workflow branch from 56e87de to 38fd5b0CompareAugust 20, 2026 04:26
@sameerr03
sameerr03 changed the base branch from mobile/01-done-notifications to archive/01-destructive-cleanupAugust 20, 2026 04:26
@github-actions

Copy link
Copy Markdown

Thread transfer impact

⚠️ The latest CI run did not produce a thread transfer result for 38fd5b0.

This comment will update automatically after the next completed run.

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:XXLvouch:trustedPR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

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

[DO NOT MERGE] feat(server): fork Codex threads at checkpoints - #7

Draft
sameerr03 wants to merge 2 commits into
archive/01-destructive-cleanupfrom
fork/01-codex-workspace-workflow
Draft

[DO NOT MERGE] feat(server): fork Codex threads at checkpoints#7
sameerr03 wants to merge 2 commits into
archive/01-destructive-cleanupfrom
fork/01-codex-workspace-workflow

Conversation

@sameerr03

@sameerr03sameerr03 commented Aug 20, 2026

Copy link
Copy Markdown
Owner

Warning

DO NOT MERGE — personal-fork V1 experiment.

This is the backend half of the Codex edit/fork feature stack. It is based on #5 because both features coordinate destructive worktree lifecycle operations through the same server semaphore; it does not depend on the commands, selected-reply, or mobile stacks.

The problem: a fork must keep the selected conversation boundary and repository filesystem at the same point. Message order alone is not enough because Codex supports queued follow-ups and provider starts can fail before a turn exists.

How this works:

  • adds a typed, operate-scoped thread-fork RPC for Codex
  • resolves the exact provider-turn boundary, refusing missing, running, or non-ready checkpoints
  • creates an isolated branch/worktree and restores the selected checkpoint there
  • uses Codex thread/fork for native conversation context and binds it to the child thread
  • records durable parent lineage without copying T3 event history
  • compensates the thread, terminal, locked/partial worktree, and branch if creation, setup, or native forking fails

Validation:

  • server and contracts typechecks
  • 82 projection, provider-service, and Codex-adapter tests
  • 49 authorization and orchestration contract tests
  • focused WebSocket fork/boundary/cleanup tests
  • real Git test proving forced cleanup removes a locked worktree
  • real T3 web-client run proving an assistant fork retained native context and left the parent unchanged
  • targeted lint and formatting checks
  • adversarial review: no remaining correctness or data-loss findings

The real-client pass caught a Git timeout that occurred after a worktree was partially created. Follow-up commit 38fd5b0e7 precomputes the exact worktree path and compensates even when create returns an error; the reproduction artifact was removed.

Stack:

Built with GPT-5.6-Sol through the Codex harness in T3 Code.

@github-actionsgithub-actionsBot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:XL labels Aug 20, 2026
@sameerr03
sameerr03force-pushed the fork/01-codex-workspace-workflow branch from 56e87de to 38fd5b0CompareAugust 20, 2026 04:26
@sameerr03
sameerr03 changed the base branch from mobile/01-done-notifications to archive/01-destructive-cleanupAugust 20, 2026 04:26
@github-actions

Copy link
Copy Markdown

Thread transfer impact

⚠️ The latest CI run did not produce a thread transfer result for 38fd5b0.

This comment will update automatically after the next completed run.

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:XXLvouch:trustedPR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

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

[DO NOT MERGE] feat(server): fork Codex threads at checkpoints - #7

Draft
sameerr03 wants to merge 2 commits into
archive/01-destructive-cleanupfrom
fork/01-codex-workspace-workflow
Draft

[DO NOT MERGE] feat(server): fork Codex threads at checkpoints#7
sameerr03 wants to merge 2 commits into
archive/01-destructive-cleanupfrom
fork/01-codex-workspace-workflow

Conversation

@sameerr03

@sameerr03sameerr03 commented Aug 20, 2026

Copy link
Copy Markdown
Owner

Warning

DO NOT MERGE — personal-fork V1 experiment.

This is the backend half of the Codex edit/fork feature stack. It is based on #5 because both features coordinate destructive worktree lifecycle operations through the same server semaphore; it does not depend on the commands, selected-reply, or mobile stacks.

The problem: a fork must keep the selected conversation boundary and repository filesystem at the same point. Message order alone is not enough because Codex supports queued follow-ups and provider starts can fail before a turn exists.

How this works:

  • adds a typed, operate-scoped thread-fork RPC for Codex
  • resolves the exact provider-turn boundary, refusing missing, running, or non-ready checkpoints
  • creates an isolated branch/worktree and restores the selected checkpoint there
  • uses Codex thread/fork for native conversation context and binds it to the child thread
  • records durable parent lineage without copying T3 event history
  • compensates the thread, terminal, locked/partial worktree, and branch if creation, setup, or native forking fails

Validation:

  • server and contracts typechecks
  • 82 projection, provider-service, and Codex-adapter tests
  • 49 authorization and orchestration contract tests
  • focused WebSocket fork/boundary/cleanup tests
  • real Git test proving forced cleanup removes a locked worktree
  • real T3 web-client run proving an assistant fork retained native context and left the parent unchanged
  • targeted lint and formatting checks
  • adversarial review: no remaining correctness or data-loss findings

The real-client pass caught a Git timeout that occurred after a worktree was partially created. Follow-up commit 38fd5b0e7 precomputes the exact worktree path and compensates even when create returns an error; the reproduction artifact was removed.

Stack:

Built with GPT-5.6-Sol through the Codex harness in T3 Code.

@github-actionsgithub-actionsBot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:XL labels Aug 20, 2026
@sameerr03
sameerr03force-pushed the fork/01-codex-workspace-workflow branch from 56e87de to 38fd5b0CompareAugust 20, 2026 04:26
@sameerr03
sameerr03 changed the base branch from mobile/01-done-notifications to archive/01-destructive-cleanupAugust 20, 2026 04:26
@github-actions

Copy link
Copy Markdown

Thread transfer impact

⚠️ The latest CI run did not produce a thread transfer result for 38fd5b0.

This comment will update automatically after the next completed run.

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:XXLvouch:trustedPR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

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

[DO NOT MERGE] feat(server): fork Codex threads at checkpoints - #7

Draft
sameerr03 wants to merge 2 commits into
archive/01-destructive-cleanupfrom
fork/01-codex-workspace-workflow
Draft

[DO NOT MERGE] feat(server): fork Codex threads at checkpoints#7
sameerr03 wants to merge 2 commits into
archive/01-destructive-cleanupfrom
fork/01-codex-workspace-workflow

Conversation

@sameerr03

@sameerr03sameerr03 commented Aug 20, 2026

Copy link
Copy Markdown
Owner

Warning

DO NOT MERGE — personal-fork V1 experiment.

This is the backend half of the Codex edit/fork feature stack. It is based on #5 because both features coordinate destructive worktree lifecycle operations through the same server semaphore; it does not depend on the commands, selected-reply, or mobile stacks.

The problem: a fork must keep the selected conversation boundary and repository filesystem at the same point. Message order alone is not enough because Codex supports queued follow-ups and provider starts can fail before a turn exists.

How this works:

  • adds a typed, operate-scoped thread-fork RPC for Codex
  • resolves the exact provider-turn boundary, refusing missing, running, or non-ready checkpoints
  • creates an isolated branch/worktree and restores the selected checkpoint there
  • uses Codex thread/fork for native conversation context and binds it to the child thread
  • records durable parent lineage without copying T3 event history
  • compensates the thread, terminal, locked/partial worktree, and branch if creation, setup, or native forking fails

Validation:

  • server and contracts typechecks
  • 82 projection, provider-service, and Codex-adapter tests
  • 49 authorization and orchestration contract tests
  • focused WebSocket fork/boundary/cleanup tests
  • real Git test proving forced cleanup removes a locked worktree
  • real T3 web-client run proving an assistant fork retained native context and left the parent unchanged
  • targeted lint and formatting checks
  • adversarial review: no remaining correctness or data-loss findings

The real-client pass caught a Git timeout that occurred after a worktree was partially created. Follow-up commit 38fd5b0e7 precomputes the exact worktree path and compensates even when create returns an error; the reproduction artifact was removed.

Stack:

Built with GPT-5.6-Sol through the Codex harness in T3 Code.

@github-actionsgithub-actionsBot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:XL labels Aug 20, 2026
@sameerr03
sameerr03force-pushed the fork/01-codex-workspace-workflow branch from 56e87de to 38fd5b0CompareAugust 20, 2026 04:26
@sameerr03
sameerr03 changed the base branch from mobile/01-done-notifications to archive/01-destructive-cleanupAugust 20, 2026 04:26
@github-actions

Copy link
Copy Markdown

Thread transfer impact

⚠️ The latest CI run did not produce a thread transfer result for 38fd5b0.

This comment will update automatically after the next completed run.

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:XXLvouch:trustedPR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

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

[DO NOT MERGE] feat(server): fork Codex threads at checkpoints - #7

Draft
sameerr03 wants to merge 2 commits into
archive/01-destructive-cleanupfrom
fork/01-codex-workspace-workflow
Draft

[DO NOT MERGE] feat(server): fork Codex threads at checkpoints#7
sameerr03 wants to merge 2 commits into
archive/01-destructive-cleanupfrom
fork/01-codex-workspace-workflow

Conversation

@sameerr03

@sameerr03sameerr03 commented Aug 20, 2026

Copy link
Copy Markdown
Owner

Warning

DO NOT MERGE — personal-fork V1 experiment.

This is the backend half of the Codex edit/fork feature stack. It is based on #5 because both features coordinate destructive worktree lifecycle operations through the same server semaphore; it does not depend on the commands, selected-reply, or mobile stacks.

The problem: a fork must keep the selected conversation boundary and repository filesystem at the same point. Message order alone is not enough because Codex supports queued follow-ups and provider starts can fail before a turn exists.

How this works:

  • adds a typed, operate-scoped thread-fork RPC for Codex
  • resolves the exact provider-turn boundary, refusing missing, running, or non-ready checkpoints
  • creates an isolated branch/worktree and restores the selected checkpoint there
  • uses Codex thread/fork for native conversation context and binds it to the child thread
  • records durable parent lineage without copying T3 event history
  • compensates the thread, terminal, locked/partial worktree, and branch if creation, setup, or native forking fails

Validation:

  • server and contracts typechecks
  • 82 projection, provider-service, and Codex-adapter tests
  • 49 authorization and orchestration contract tests
  • focused WebSocket fork/boundary/cleanup tests
  • real Git test proving forced cleanup removes a locked worktree
  • real T3 web-client run proving an assistant fork retained native context and left the parent unchanged
  • targeted lint and formatting checks
  • adversarial review: no remaining correctness or data-loss findings

The real-client pass caught a Git timeout that occurred after a worktree was partially created. Follow-up commit 38fd5b0e7 precomputes the exact worktree path and compensates even when create returns an error; the reproduction artifact was removed.

Stack:

Built with GPT-5.6-Sol through the Codex harness in T3 Code.

@github-actionsgithub-actionsBot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:XL labels Aug 20, 2026
@sameerr03
sameerr03force-pushed the fork/01-codex-workspace-workflow branch from 56e87de to 38fd5b0CompareAugust 20, 2026 04:26
@sameerr03
sameerr03 changed the base branch from mobile/01-done-notifications to archive/01-destructive-cleanupAugust 20, 2026 04:26
@github-actions

Copy link
Copy Markdown

Thread transfer impact

⚠️ The latest CI run did not produce a thread transfer result for 38fd5b0.

This comment will update automatically after the next completed run.

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:XXLvouch:trustedPR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@sameerr03