[web-shared]: fix event payload loading (e.g. step_created) - #1685

Merged
karthikscale3 merged 80 commits into
mainfrom
karthik/fix-workflow-inputs
Apr 10, 2026
Merged

[web-shared]: fix event payload loading (e.g. step_created)#1685
karthikscale3 merged 80 commits into
mainfrom
karthik/fix-workflow-inputs

Conversation

@karthikscale3

@karthikscale3karthikscale3 commented Apr 10, 2026

Copy link
Copy Markdown
Contributor

PR description

What

  • event-list-view: Reworks when event details load and how they’re merged. Applies cached rows into local state, guards concurrent loads with isLoading, and prefers the fully loaded payload over inline list eventData when both exist. While a fetch is in flight, the UI can keep showing the last known payload instead of blanking out.
  • events-list (sidebar): Uses the same display rule—loadedData overrides existingData so list snippets don’t block or replace fetched details. Skips duplicate fetches when a payload is already loaded (via a ref-backed guard). On encryption key changes, clears cache and forces a refetch so loadEventData isn’t stuck behind a stale loadedData !== null closure. hasOnlyExpiredFields now uses EVENT_DATA_REF_FIELDS so “all expired” only considers ref/payload keys for that eventType (not a fixed list for every type).
  • hydration (web-shared): Replaces the hardcoded eventData key list with EVENT_DATA_REF_FIELDS for encrypted/expired markers and decrypt paths, only touching keys that exist on the object—aligned with world’s per-event ref fields and avoids touching irrelevant keys.

Why

List APIs often return partial or stale eventData. The old merge order and early returns could prevent or override a full fetch (notably for step_created). These changes make the timeline and sidebar fetch-first, keep loading UX stable, fix decrypt-after-key reloads, and keep serialization / expiry handling scoped to the fields that actually exist for each event type.

@karthikscale3
karthikscale3 merged commit 38a642b into mainApr 10, 2026
218 of 233 checks passed
@karthikscale3
karthikscale3 deleted the karthik/fix-workflow-inputs branch April 10, 2026 21:52
@ghost

Copy link
Copy Markdown

Backported to stable (38a642b -> d210a59).

ghost pushed a commit that referenced this pull request Apr 10, 2026
* Fix event loading issue for step_created event
* Update tired-spiders-rhyme.md
Signed-off-by: Karthik Kalyan <105607645+karthikscale3@users.noreply.github.com>
* add isSystem to attribute panel
* remove isSystem
* remove hardcoding event data ref fields
* fix stale closure
---------
Signed-off-by: Karthik Kalyan <105607645+karthikscale3@users.noreply.github.com>
@ghostghost mentioned this pull request Apr 10, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

backport-stableCherry-pick this PR to the stable branch when merged

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@karthikscale3@TooTallNate@VaguelySerious
, '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

[web-shared]: fix event payload loading (e.g. step_created) - #1685

Merged
karthikscale3 merged 80 commits into
mainfrom
karthik/fix-workflow-inputs
Apr 10, 2026
Merged

[web-shared]: fix event payload loading (e.g. step_created)#1685
karthikscale3 merged 80 commits into
mainfrom
karthik/fix-workflow-inputs

Conversation

@karthikscale3

@karthikscale3karthikscale3 commented Apr 10, 2026

Copy link
Copy Markdown
Contributor

PR description

What

  • event-list-view: Reworks when event details load and how they’re merged. Applies cached rows into local state, guards concurrent loads with isLoading, and prefers the fully loaded payload over inline list eventData when both exist. While a fetch is in flight, the UI can keep showing the last known payload instead of blanking out.
  • events-list (sidebar): Uses the same display rule—loadedData overrides existingData so list snippets don’t block or replace fetched details. Skips duplicate fetches when a payload is already loaded (via a ref-backed guard). On encryption key changes, clears cache and forces a refetch so loadEventData isn’t stuck behind a stale loadedData !== null closure. hasOnlyExpiredFields now uses EVENT_DATA_REF_FIELDS so “all expired” only considers ref/payload keys for that eventType (not a fixed list for every type).
  • hydration (web-shared): Replaces the hardcoded eventData key list with EVENT_DATA_REF_FIELDS for encrypted/expired markers and decrypt paths, only touching keys that exist on the object—aligned with world’s per-event ref fields and avoids touching irrelevant keys.

Why

List APIs often return partial or stale eventData. The old merge order and early returns could prevent or override a full fetch (notably for step_created). These changes make the timeline and sidebar fetch-first, keep loading UX stable, fix decrypt-after-key reloads, and keep serialization / expiry handling scoped to the fields that actually exist for each event type.

@karthikscale3
karthikscale3 merged commit 38a642b into mainApr 10, 2026
218 of 233 checks passed
@karthikscale3
karthikscale3 deleted the karthik/fix-workflow-inputs branch April 10, 2026 21:52
@ghost

Copy link
Copy Markdown

Backported to stable (38a642b -> d210a59).

ghost pushed a commit that referenced this pull request Apr 10, 2026
* Fix event loading issue for step_created event
* Update tired-spiders-rhyme.md
Signed-off-by: Karthik Kalyan <105607645+karthikscale3@users.noreply.github.com>
* add isSystem to attribute panel
* remove isSystem
* remove hardcoding event data ref fields
* fix stale closure
---------
Signed-off-by: Karthik Kalyan <105607645+karthikscale3@users.noreply.github.com>
@ghostghost mentioned this pull request Apr 10, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

backport-stableCherry-pick this PR to the stable branch when merged

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@karthikscale3@TooTallNate@VaguelySerious
, '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

[web-shared]: fix event payload loading (e.g. step_created) - #1685

Merged
karthikscale3 merged 80 commits into
mainfrom
karthik/fix-workflow-inputs
Apr 10, 2026
Merged

[web-shared]: fix event payload loading (e.g. step_created)#1685
karthikscale3 merged 80 commits into
mainfrom
karthik/fix-workflow-inputs

Conversation

@karthikscale3

@karthikscale3karthikscale3 commented Apr 10, 2026

Copy link
Copy Markdown
Contributor

PR description

What

  • event-list-view: Reworks when event details load and how they’re merged. Applies cached rows into local state, guards concurrent loads with isLoading, and prefers the fully loaded payload over inline list eventData when both exist. While a fetch is in flight, the UI can keep showing the last known payload instead of blanking out.
  • events-list (sidebar): Uses the same display rule—loadedData overrides existingData so list snippets don’t block or replace fetched details. Skips duplicate fetches when a payload is already loaded (via a ref-backed guard). On encryption key changes, clears cache and forces a refetch so loadEventData isn’t stuck behind a stale loadedData !== null closure. hasOnlyExpiredFields now uses EVENT_DATA_REF_FIELDS so “all expired” only considers ref/payload keys for that eventType (not a fixed list for every type).
  • hydration (web-shared): Replaces the hardcoded eventData key list with EVENT_DATA_REF_FIELDS for encrypted/expired markers and decrypt paths, only touching keys that exist on the object—aligned with world’s per-event ref fields and avoids touching irrelevant keys.

Why

List APIs often return partial or stale eventData. The old merge order and early returns could prevent or override a full fetch (notably for step_created). These changes make the timeline and sidebar fetch-first, keep loading UX stable, fix decrypt-after-key reloads, and keep serialization / expiry handling scoped to the fields that actually exist for each event type.

@karthikscale3
karthikscale3 merged commit 38a642b into mainApr 10, 2026
218 of 233 checks passed
@karthikscale3
karthikscale3 deleted the karthik/fix-workflow-inputs branch April 10, 2026 21:52
@ghost

Copy link
Copy Markdown

Backported to stable (38a642b -> d210a59).

ghost pushed a commit that referenced this pull request Apr 10, 2026
* Fix event loading issue for step_created event
* Update tired-spiders-rhyme.md
Signed-off-by: Karthik Kalyan <105607645+karthikscale3@users.noreply.github.com>
* add isSystem to attribute panel
* remove isSystem
* remove hardcoding event data ref fields
* fix stale closure
---------
Signed-off-by: Karthik Kalyan <105607645+karthikscale3@users.noreply.github.com>
@ghostghost mentioned this pull request Apr 10, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

backport-stableCherry-pick this PR to the stable branch when merged

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@karthikscale3@TooTallNate@VaguelySerious
, '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

[web-shared]: fix event payload loading (e.g. step_created) - #1685

Merged
karthikscale3 merged 80 commits into
mainfrom
karthik/fix-workflow-inputs
Apr 10, 2026
Merged

[web-shared]: fix event payload loading (e.g. step_created)#1685
karthikscale3 merged 80 commits into
mainfrom
karthik/fix-workflow-inputs

Conversation

@karthikscale3

@karthikscale3karthikscale3 commented Apr 10, 2026

Copy link
Copy Markdown
Contributor

PR description

What

  • event-list-view: Reworks when event details load and how they’re merged. Applies cached rows into local state, guards concurrent loads with isLoading, and prefers the fully loaded payload over inline list eventData when both exist. While a fetch is in flight, the UI can keep showing the last known payload instead of blanking out.
  • events-list (sidebar): Uses the same display rule—loadedData overrides existingData so list snippets don’t block or replace fetched details. Skips duplicate fetches when a payload is already loaded (via a ref-backed guard). On encryption key changes, clears cache and forces a refetch so loadEventData isn’t stuck behind a stale loadedData !== null closure. hasOnlyExpiredFields now uses EVENT_DATA_REF_FIELDS so “all expired” only considers ref/payload keys for that eventType (not a fixed list for every type).
  • hydration (web-shared): Replaces the hardcoded eventData key list with EVENT_DATA_REF_FIELDS for encrypted/expired markers and decrypt paths, only touching keys that exist on the object—aligned with world’s per-event ref fields and avoids touching irrelevant keys.

Why

List APIs often return partial or stale eventData. The old merge order and early returns could prevent or override a full fetch (notably for step_created). These changes make the timeline and sidebar fetch-first, keep loading UX stable, fix decrypt-after-key reloads, and keep serialization / expiry handling scoped to the fields that actually exist for each event type.

@karthikscale3
karthikscale3 merged commit 38a642b into mainApr 10, 2026
218 of 233 checks passed
@karthikscale3
karthikscale3 deleted the karthik/fix-workflow-inputs branch April 10, 2026 21:52
@ghost

Copy link
Copy Markdown

Backported to stable (38a642b -> d210a59).

ghost pushed a commit that referenced this pull request Apr 10, 2026
* Fix event loading issue for step_created event
* Update tired-spiders-rhyme.md
Signed-off-by: Karthik Kalyan <105607645+karthikscale3@users.noreply.github.com>
* add isSystem to attribute panel
* remove isSystem
* remove hardcoding event data ref fields
* fix stale closure
---------
Signed-off-by: Karthik Kalyan <105607645+karthikscale3@users.noreply.github.com>
@ghostghost mentioned this pull request Apr 10, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

backport-stableCherry-pick this PR to the stable branch when merged

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@karthikscale3@TooTallNate@VaguelySerious
, '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

[web-shared]: fix event payload loading (e.g. step_created) - #1685

Merged
karthikscale3 merged 80 commits into
mainfrom
karthik/fix-workflow-inputs
Apr 10, 2026
Merged

[web-shared]: fix event payload loading (e.g. step_created)#1685
karthikscale3 merged 80 commits into
mainfrom
karthik/fix-workflow-inputs

Conversation

@karthikscale3

@karthikscale3karthikscale3 commented Apr 10, 2026

Copy link
Copy Markdown
Contributor

PR description

What

  • event-list-view: Reworks when event details load and how they’re merged. Applies cached rows into local state, guards concurrent loads with isLoading, and prefers the fully loaded payload over inline list eventData when both exist. While a fetch is in flight, the UI can keep showing the last known payload instead of blanking out.
  • events-list (sidebar): Uses the same display rule—loadedData overrides existingData so list snippets don’t block or replace fetched details. Skips duplicate fetches when a payload is already loaded (via a ref-backed guard). On encryption key changes, clears cache and forces a refetch so loadEventData isn’t stuck behind a stale loadedData !== null closure. hasOnlyExpiredFields now uses EVENT_DATA_REF_FIELDS so “all expired” only considers ref/payload keys for that eventType (not a fixed list for every type).
  • hydration (web-shared): Replaces the hardcoded eventData key list with EVENT_DATA_REF_FIELDS for encrypted/expired markers and decrypt paths, only touching keys that exist on the object—aligned with world’s per-event ref fields and avoids touching irrelevant keys.

Why

List APIs often return partial or stale eventData. The old merge order and early returns could prevent or override a full fetch (notably for step_created). These changes make the timeline and sidebar fetch-first, keep loading UX stable, fix decrypt-after-key reloads, and keep serialization / expiry handling scoped to the fields that actually exist for each event type.

@karthikscale3
karthikscale3 merged commit 38a642b into mainApr 10, 2026
218 of 233 checks passed
@karthikscale3
karthikscale3 deleted the karthik/fix-workflow-inputs branch April 10, 2026 21:52
@ghost

Copy link
Copy Markdown

Backported to stable (38a642b -> d210a59).

ghost pushed a commit that referenced this pull request Apr 10, 2026
* Fix event loading issue for step_created event
* Update tired-spiders-rhyme.md
Signed-off-by: Karthik Kalyan <105607645+karthikscale3@users.noreply.github.com>
* add isSystem to attribute panel
* remove isSystem
* remove hardcoding event data ref fields
* fix stale closure
---------
Signed-off-by: Karthik Kalyan <105607645+karthikscale3@users.noreply.github.com>
@ghostghost mentioned this pull request Apr 10, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

backport-stableCherry-pick this PR to the stable branch when merged

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@karthikscale3@TooTallNate@VaguelySerious
, '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

[web-shared]: fix event payload loading (e.g. step_created) - #1685

Merged
karthikscale3 merged 80 commits into
mainfrom
karthik/fix-workflow-inputs
Apr 10, 2026
Merged

[web-shared]: fix event payload loading (e.g. step_created)#1685
karthikscale3 merged 80 commits into
mainfrom
karthik/fix-workflow-inputs

Conversation

@karthikscale3

@karthikscale3karthikscale3 commented Apr 10, 2026

Copy link
Copy Markdown
Contributor

PR description

What

  • event-list-view: Reworks when event details load and how they’re merged. Applies cached rows into local state, guards concurrent loads with isLoading, and prefers the fully loaded payload over inline list eventData when both exist. While a fetch is in flight, the UI can keep showing the last known payload instead of blanking out.
  • events-list (sidebar): Uses the same display rule—loadedData overrides existingData so list snippets don’t block or replace fetched details. Skips duplicate fetches when a payload is already loaded (via a ref-backed guard). On encryption key changes, clears cache and forces a refetch so loadEventData isn’t stuck behind a stale loadedData !== null closure. hasOnlyExpiredFields now uses EVENT_DATA_REF_FIELDS so “all expired” only considers ref/payload keys for that eventType (not a fixed list for every type).
  • hydration (web-shared): Replaces the hardcoded eventData key list with EVENT_DATA_REF_FIELDS for encrypted/expired markers and decrypt paths, only touching keys that exist on the object—aligned with world’s per-event ref fields and avoids touching irrelevant keys.

Why

List APIs often return partial or stale eventData. The old merge order and early returns could prevent or override a full fetch (notably for step_created). These changes make the timeline and sidebar fetch-first, keep loading UX stable, fix decrypt-after-key reloads, and keep serialization / expiry handling scoped to the fields that actually exist for each event type.

@karthikscale3
karthikscale3 merged commit 38a642b into mainApr 10, 2026
218 of 233 checks passed
@karthikscale3
karthikscale3 deleted the karthik/fix-workflow-inputs branch April 10, 2026 21:52
@ghost

Copy link
Copy Markdown

Backported to stable (38a642b -> d210a59).

ghost pushed a commit that referenced this pull request Apr 10, 2026
* Fix event loading issue for step_created event
* Update tired-spiders-rhyme.md
Signed-off-by: Karthik Kalyan <105607645+karthikscale3@users.noreply.github.com>
* add isSystem to attribute panel
* remove isSystem
* remove hardcoding event data ref fields
* fix stale closure
---------
Signed-off-by: Karthik Kalyan <105607645+karthikscale3@users.noreply.github.com>
@ghostghost mentioned this pull request Apr 10, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

backport-stableCherry-pick this PR to the stable branch when merged

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@karthikscale3@TooTallNate@VaguelySerious
, '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

[web-shared]: fix event payload loading (e.g. step_created) - #1685

Merged
karthikscale3 merged 80 commits into
mainfrom
karthik/fix-workflow-inputs
Apr 10, 2026
Merged

[web-shared]: fix event payload loading (e.g. step_created)#1685
karthikscale3 merged 80 commits into
mainfrom
karthik/fix-workflow-inputs

Conversation

@karthikscale3

@karthikscale3karthikscale3 commented Apr 10, 2026

Copy link
Copy Markdown
Contributor

PR description

What

  • event-list-view: Reworks when event details load and how they’re merged. Applies cached rows into local state, guards concurrent loads with isLoading, and prefers the fully loaded payload over inline list eventData when both exist. While a fetch is in flight, the UI can keep showing the last known payload instead of blanking out.
  • events-list (sidebar): Uses the same display rule—loadedData overrides existingData so list snippets don’t block or replace fetched details. Skips duplicate fetches when a payload is already loaded (via a ref-backed guard). On encryption key changes, clears cache and forces a refetch so loadEventData isn’t stuck behind a stale loadedData !== null closure. hasOnlyExpiredFields now uses EVENT_DATA_REF_FIELDS so “all expired” only considers ref/payload keys for that eventType (not a fixed list for every type).
  • hydration (web-shared): Replaces the hardcoded eventData key list with EVENT_DATA_REF_FIELDS for encrypted/expired markers and decrypt paths, only touching keys that exist on the object—aligned with world’s per-event ref fields and avoids touching irrelevant keys.

Why

List APIs often return partial or stale eventData. The old merge order and early returns could prevent or override a full fetch (notably for step_created). These changes make the timeline and sidebar fetch-first, keep loading UX stable, fix decrypt-after-key reloads, and keep serialization / expiry handling scoped to the fields that actually exist for each event type.

@karthikscale3
karthikscale3 merged commit 38a642b into mainApr 10, 2026
218 of 233 checks passed
@karthikscale3
karthikscale3 deleted the karthik/fix-workflow-inputs branch April 10, 2026 21:52
@ghost

Copy link
Copy Markdown

Backported to stable (38a642b -> d210a59).

ghost pushed a commit that referenced this pull request Apr 10, 2026
* Fix event loading issue for step_created event
* Update tired-spiders-rhyme.md
Signed-off-by: Karthik Kalyan <105607645+karthikscale3@users.noreply.github.com>
* add isSystem to attribute panel
* remove isSystem
* remove hardcoding event data ref fields
* fix stale closure
---------
Signed-off-by: Karthik Kalyan <105607645+karthikscale3@users.noreply.github.com>
@ghostghost mentioned this pull request Apr 10, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

backport-stableCherry-pick this PR to the stable branch when merged

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@karthikscale3@TooTallNate@VaguelySerious
, '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

[web-shared]: fix event payload loading (e.g. step_created) - #1685

Merged
karthikscale3 merged 80 commits into
mainfrom
karthik/fix-workflow-inputs
Apr 10, 2026
Merged

[web-shared]: fix event payload loading (e.g. step_created)#1685
karthikscale3 merged 80 commits into
mainfrom
karthik/fix-workflow-inputs

Conversation

@karthikscale3

@karthikscale3karthikscale3 commented Apr 10, 2026

Copy link
Copy Markdown
Contributor

PR description

What

  • event-list-view: Reworks when event details load and how they’re merged. Applies cached rows into local state, guards concurrent loads with isLoading, and prefers the fully loaded payload over inline list eventData when both exist. While a fetch is in flight, the UI can keep showing the last known payload instead of blanking out.
  • events-list (sidebar): Uses the same display rule—loadedData overrides existingData so list snippets don’t block or replace fetched details. Skips duplicate fetches when a payload is already loaded (via a ref-backed guard). On encryption key changes, clears cache and forces a refetch so loadEventData isn’t stuck behind a stale loadedData !== null closure. hasOnlyExpiredFields now uses EVENT_DATA_REF_FIELDS so “all expired” only considers ref/payload keys for that eventType (not a fixed list for every type).
  • hydration (web-shared): Replaces the hardcoded eventData key list with EVENT_DATA_REF_FIELDS for encrypted/expired markers and decrypt paths, only touching keys that exist on the object—aligned with world’s per-event ref fields and avoids touching irrelevant keys.

Why

List APIs often return partial or stale eventData. The old merge order and early returns could prevent or override a full fetch (notably for step_created). These changes make the timeline and sidebar fetch-first, keep loading UX stable, fix decrypt-after-key reloads, and keep serialization / expiry handling scoped to the fields that actually exist for each event type.

@karthikscale3
karthikscale3 merged commit 38a642b into mainApr 10, 2026
218 of 233 checks passed
@karthikscale3
karthikscale3 deleted the karthik/fix-workflow-inputs branch April 10, 2026 21:52
@ghost

Copy link
Copy Markdown

Backported to stable (38a642b -> d210a59).

ghost pushed a commit that referenced this pull request Apr 10, 2026
* Fix event loading issue for step_created event
* Update tired-spiders-rhyme.md
Signed-off-by: Karthik Kalyan <105607645+karthikscale3@users.noreply.github.com>
* add isSystem to attribute panel
* remove isSystem
* remove hardcoding event data ref fields
* fix stale closure
---------
Signed-off-by: Karthik Kalyan <105607645+karthikscale3@users.noreply.github.com>
@ghostghost mentioned this pull request Apr 10, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

backport-stableCherry-pick this PR to the stable branch when merged

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@karthikscale3@TooTallNate@VaguelySerious