v2 site view is a wireframe of the approved design, not the design #112

Description

@pseudoseed

Problem. Comparing the shipped /v2/ render against codev/research/v2-mockups/01-site.png side by side, the structure and palette match but almost everything that makes the design readable was dropped. It reads as a wireframe of the mockup.

Spec 83 checked tokens, containment, rust discipline and D8 chrome absence — all of which passed. Nothing checked fidelity against the mockup itself, which is why this got through review.

Missing, all present in the approved design:

Approved (01-site.png)Shipped
Header: Porch mark, SITE REGISTER · 2 MACHINES · 5 WORKSPACES · 11 BUILDERS, FIND NODE ⌘K, ADD MACHINE, gate badgelocalhost THIS MACHINE and nothing else
tower-01 MAC STUDIO · FOREMAN'S RIG + ONLINE · 41% LOADno machine metadata at all
WORKSPACE / CHECKOUT with iconbare CODEV-1455
architect/checkout-v3 with icon and status dotbare main
builder/pay-2201bare spir-83
Sparkline as visible bars of varying heighta row of dots, effectively invisible
Offline machine shows RECONNECT TO RESUME in its empty lotnothing
Plots sized to content, ~3 across, compactstretched to the tallest in the row (#111)

The naming convention is the biggest single loss.workspace/, architect/ and builder/ prefixes are how the design tells four node kinds apart at a glance. Without them every row is an undifferentiated string, and the hierarchy has to be inferred from indentation alone — which is the outline FR-1 explicitly rejects.

Sparklines..spark i bars render at the trace value, so an all-zero trace is zero-height and reads as dots. The mockup's idle builders show a visible flat baseline (....... at a consistent low height) rather than nothing. An idle builder should look idle, not look broken.

Not in scope, correctly omitted: gate queue rail, live panes, find-node, add-machine. Those are later units per D8 and are absent rather than stubbed, which was the right call.

Scope of a fix. Restore the label prefixes and icons, the header bar with its counts, machine metadata where the wire carries it (and omit what it does not — do not invent 41% LOAD), a visible idle baseline for sparklines, and the offline-lot placeholder. Fix #111 in the same pass since it is one line and compounds all of this.

Testing. A fidelity check the current suite has no equivalent of: render a fixture matching the mockup's data and assert the label prefixes, header counts and sparkline baseline are present. Component tests that assert only "the name renders" cannot catch a missing prefix.

Found by the architect comparing renders after merge. Spec 83's review verified tokens and structure and never compared against the mockup — that gap is the reason this shipped.

Activity

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    area/dashboardTower web dashboardfork-onlyDeliberately not upstreamed to cluesmith/codev

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions

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

      v2 site view is a wireframe of the approved design, not the design #112

      Description

      @pseudoseed

      Problem. Comparing the shipped /v2/ render against codev/research/v2-mockups/01-site.png side by side, the structure and palette match but almost everything that makes the design readable was dropped. It reads as a wireframe of the mockup.

      Spec 83 checked tokens, containment, rust discipline and D8 chrome absence — all of which passed. Nothing checked fidelity against the mockup itself, which is why this got through review.

      Missing, all present in the approved design:

      Approved (01-site.png)Shipped
      Header: Porch mark, SITE REGISTER · 2 MACHINES · 5 WORKSPACES · 11 BUILDERS, FIND NODE ⌘K, ADD MACHINE, gate badgelocalhost THIS MACHINE and nothing else
      tower-01 MAC STUDIO · FOREMAN'S RIG + ONLINE · 41% LOADno machine metadata at all
      WORKSPACE / CHECKOUT with iconbare CODEV-1455
      architect/checkout-v3 with icon and status dotbare main
      builder/pay-2201bare spir-83
      Sparkline as visible bars of varying heighta row of dots, effectively invisible
      Offline machine shows RECONNECT TO RESUME in its empty lotnothing
      Plots sized to content, ~3 across, compactstretched to the tallest in the row (#111)

      The naming convention is the biggest single loss.workspace/, architect/ and builder/ prefixes are how the design tells four node kinds apart at a glance. Without them every row is an undifferentiated string, and the hierarchy has to be inferred from indentation alone — which is the outline FR-1 explicitly rejects.

      Sparklines..spark i bars render at the trace value, so an all-zero trace is zero-height and reads as dots. The mockup's idle builders show a visible flat baseline (....... at a consistent low height) rather than nothing. An idle builder should look idle, not look broken.

      Not in scope, correctly omitted: gate queue rail, live panes, find-node, add-machine. Those are later units per D8 and are absent rather than stubbed, which was the right call.

      Scope of a fix. Restore the label prefixes and icons, the header bar with its counts, machine metadata where the wire carries it (and omit what it does not — do not invent 41% LOAD), a visible idle baseline for sparklines, and the offline-lot placeholder. Fix #111 in the same pass since it is one line and compounds all of this.

      Testing. A fidelity check the current suite has no equivalent of: render a fixture matching the mockup's data and assert the label prefixes, header counts and sparkline baseline are present. Component tests that assert only "the name renders" cannot catch a missing prefix.

      Found by the architect comparing renders after merge. Spec 83's review verified tokens and structure and never compared against the mockup — that gap is the reason this shipped.

      Activity

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

      Metadata

      Metadata

      Assignees

      No one assigned

        Labels

        area/dashboardTower web dashboardfork-onlyDeliberately not upstreamed to cluesmith/codev

        Projects

        No projects

          Milestone

          No milestone

          Relationships

          None yet

          Development

          No branches or pull requests

          Issue actions

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

          v2 site view is a wireframe of the approved design, not the design #112

          Description

          @pseudoseed

          Problem. Comparing the shipped /v2/ render against codev/research/v2-mockups/01-site.png side by side, the structure and palette match but almost everything that makes the design readable was dropped. It reads as a wireframe of the mockup.

          Spec 83 checked tokens, containment, rust discipline and D8 chrome absence — all of which passed. Nothing checked fidelity against the mockup itself, which is why this got through review.

          Missing, all present in the approved design:

          Approved (01-site.png)Shipped
          Header: Porch mark, SITE REGISTER · 2 MACHINES · 5 WORKSPACES · 11 BUILDERS, FIND NODE ⌘K, ADD MACHINE, gate badgelocalhost THIS MACHINE and nothing else
          tower-01 MAC STUDIO · FOREMAN'S RIG + ONLINE · 41% LOADno machine metadata at all
          WORKSPACE / CHECKOUT with iconbare CODEV-1455
          architect/checkout-v3 with icon and status dotbare main
          builder/pay-2201bare spir-83
          Sparkline as visible bars of varying heighta row of dots, effectively invisible
          Offline machine shows RECONNECT TO RESUME in its empty lotnothing
          Plots sized to content, ~3 across, compactstretched to the tallest in the row (#111)

          The naming convention is the biggest single loss.workspace/, architect/ and builder/ prefixes are how the design tells four node kinds apart at a glance. Without them every row is an undifferentiated string, and the hierarchy has to be inferred from indentation alone — which is the outline FR-1 explicitly rejects.

          Sparklines..spark i bars render at the trace value, so an all-zero trace is zero-height and reads as dots. The mockup's idle builders show a visible flat baseline (....... at a consistent low height) rather than nothing. An idle builder should look idle, not look broken.

          Not in scope, correctly omitted: gate queue rail, live panes, find-node, add-machine. Those are later units per D8 and are absent rather than stubbed, which was the right call.

          Scope of a fix. Restore the label prefixes and icons, the header bar with its counts, machine metadata where the wire carries it (and omit what it does not — do not invent 41% LOAD), a visible idle baseline for sparklines, and the offline-lot placeholder. Fix #111 in the same pass since it is one line and compounds all of this.

          Testing. A fidelity check the current suite has no equivalent of: render a fixture matching the mockup's data and assert the label prefixes, header counts and sparkline baseline are present. Component tests that assert only "the name renders" cannot catch a missing prefix.

          Found by the architect comparing renders after merge. Spec 83's review verified tokens and structure and never compared against the mockup — that gap is the reason this shipped.

          Activity

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

          Metadata

          Metadata

          Assignees

          No one assigned

            Labels

            area/dashboardTower web dashboardfork-onlyDeliberately not upstreamed to cluesmith/codev

            Projects

            No projects

              Milestone

              No milestone

              Relationships

              None yet

              Development

              No branches or pull requests

              Issue actions

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

              v2 site view is a wireframe of the approved design, not the design #112

              Description

              @pseudoseed

              Problem. Comparing the shipped /v2/ render against codev/research/v2-mockups/01-site.png side by side, the structure and palette match but almost everything that makes the design readable was dropped. It reads as a wireframe of the mockup.

              Spec 83 checked tokens, containment, rust discipline and D8 chrome absence — all of which passed. Nothing checked fidelity against the mockup itself, which is why this got through review.

              Missing, all present in the approved design:

              Approved (01-site.png)Shipped
              Header: Porch mark, SITE REGISTER · 2 MACHINES · 5 WORKSPACES · 11 BUILDERS, FIND NODE ⌘K, ADD MACHINE, gate badgelocalhost THIS MACHINE and nothing else
              tower-01 MAC STUDIO · FOREMAN'S RIG + ONLINE · 41% LOADno machine metadata at all
              WORKSPACE / CHECKOUT with iconbare CODEV-1455
              architect/checkout-v3 with icon and status dotbare main
              builder/pay-2201bare spir-83
              Sparkline as visible bars of varying heighta row of dots, effectively invisible
              Offline machine shows RECONNECT TO RESUME in its empty lotnothing
              Plots sized to content, ~3 across, compactstretched to the tallest in the row (#111)

              The naming convention is the biggest single loss.workspace/, architect/ and builder/ prefixes are how the design tells four node kinds apart at a glance. Without them every row is an undifferentiated string, and the hierarchy has to be inferred from indentation alone — which is the outline FR-1 explicitly rejects.

              Sparklines..spark i bars render at the trace value, so an all-zero trace is zero-height and reads as dots. The mockup's idle builders show a visible flat baseline (....... at a consistent low height) rather than nothing. An idle builder should look idle, not look broken.

              Not in scope, correctly omitted: gate queue rail, live panes, find-node, add-machine. Those are later units per D8 and are absent rather than stubbed, which was the right call.

              Scope of a fix. Restore the label prefixes and icons, the header bar with its counts, machine metadata where the wire carries it (and omit what it does not — do not invent 41% LOAD), a visible idle baseline for sparklines, and the offline-lot placeholder. Fix #111 in the same pass since it is one line and compounds all of this.

              Testing. A fidelity check the current suite has no equivalent of: render a fixture matching the mockup's data and assert the label prefixes, header counts and sparkline baseline are present. Component tests that assert only "the name renders" cannot catch a missing prefix.

              Found by the architect comparing renders after merge. Spec 83's review verified tokens and structure and never compared against the mockup — that gap is the reason this shipped.

              Activity

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

              Metadata

              Metadata

              Assignees

              No one assigned

                Labels

                area/dashboardTower web dashboardfork-onlyDeliberately not upstreamed to cluesmith/codev

                Projects

                No projects

                  Milestone

                  No milestone

                  Relationships

                  None yet

                  Development

                  No branches or pull requests

                  Issue actions

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

                  v2 site view is a wireframe of the approved design, not the design #112

                  Description

                  @pseudoseed

                  Problem. Comparing the shipped /v2/ render against codev/research/v2-mockups/01-site.png side by side, the structure and palette match but almost everything that makes the design readable was dropped. It reads as a wireframe of the mockup.

                  Spec 83 checked tokens, containment, rust discipline and D8 chrome absence — all of which passed. Nothing checked fidelity against the mockup itself, which is why this got through review.

                  Missing, all present in the approved design:

                  Approved (01-site.png)Shipped
                  Header: Porch mark, SITE REGISTER · 2 MACHINES · 5 WORKSPACES · 11 BUILDERS, FIND NODE ⌘K, ADD MACHINE, gate badgelocalhost THIS MACHINE and nothing else
                  tower-01 MAC STUDIO · FOREMAN'S RIG + ONLINE · 41% LOADno machine metadata at all
                  WORKSPACE / CHECKOUT with iconbare CODEV-1455
                  architect/checkout-v3 with icon and status dotbare main
                  builder/pay-2201bare spir-83
                  Sparkline as visible bars of varying heighta row of dots, effectively invisible
                  Offline machine shows RECONNECT TO RESUME in its empty lotnothing
                  Plots sized to content, ~3 across, compactstretched to the tallest in the row (#111)

                  The naming convention is the biggest single loss.workspace/, architect/ and builder/ prefixes are how the design tells four node kinds apart at a glance. Without them every row is an undifferentiated string, and the hierarchy has to be inferred from indentation alone — which is the outline FR-1 explicitly rejects.

                  Sparklines..spark i bars render at the trace value, so an all-zero trace is zero-height and reads as dots. The mockup's idle builders show a visible flat baseline (....... at a consistent low height) rather than nothing. An idle builder should look idle, not look broken.

                  Not in scope, correctly omitted: gate queue rail, live panes, find-node, add-machine. Those are later units per D8 and are absent rather than stubbed, which was the right call.

                  Scope of a fix. Restore the label prefixes and icons, the header bar with its counts, machine metadata where the wire carries it (and omit what it does not — do not invent 41% LOAD), a visible idle baseline for sparklines, and the offline-lot placeholder. Fix #111 in the same pass since it is one line and compounds all of this.

                  Testing. A fidelity check the current suite has no equivalent of: render a fixture matching the mockup's data and assert the label prefixes, header counts and sparkline baseline are present. Component tests that assert only "the name renders" cannot catch a missing prefix.

                  Found by the architect comparing renders after merge. Spec 83's review verified tokens and structure and never compared against the mockup — that gap is the reason this shipped.

                  Activity

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

                  Metadata

                  Metadata

                  Assignees

                  No one assigned

                    Labels

                    area/dashboardTower web dashboardfork-onlyDeliberately not upstreamed to cluesmith/codev

                    Projects

                    No projects

                      Milestone

                      No milestone

                      Relationships

                      None yet

                      Development

                      No branches or pull requests

                      Issue actions

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

                      v2 site view is a wireframe of the approved design, not the design #112

                      Description

                      @pseudoseed

                      Problem. Comparing the shipped /v2/ render against codev/research/v2-mockups/01-site.png side by side, the structure and palette match but almost everything that makes the design readable was dropped. It reads as a wireframe of the mockup.

                      Spec 83 checked tokens, containment, rust discipline and D8 chrome absence — all of which passed. Nothing checked fidelity against the mockup itself, which is why this got through review.

                      Missing, all present in the approved design:

                      Approved (01-site.png)Shipped
                      Header: Porch mark, SITE REGISTER · 2 MACHINES · 5 WORKSPACES · 11 BUILDERS, FIND NODE ⌘K, ADD MACHINE, gate badgelocalhost THIS MACHINE and nothing else
                      tower-01 MAC STUDIO · FOREMAN'S RIG + ONLINE · 41% LOADno machine metadata at all
                      WORKSPACE / CHECKOUT with iconbare CODEV-1455
                      architect/checkout-v3 with icon and status dotbare main
                      builder/pay-2201bare spir-83
                      Sparkline as visible bars of varying heighta row of dots, effectively invisible
                      Offline machine shows RECONNECT TO RESUME in its empty lotnothing
                      Plots sized to content, ~3 across, compactstretched to the tallest in the row (#111)

                      The naming convention is the biggest single loss.workspace/, architect/ and builder/ prefixes are how the design tells four node kinds apart at a glance. Without them every row is an undifferentiated string, and the hierarchy has to be inferred from indentation alone — which is the outline FR-1 explicitly rejects.

                      Sparklines..spark i bars render at the trace value, so an all-zero trace is zero-height and reads as dots. The mockup's idle builders show a visible flat baseline (....... at a consistent low height) rather than nothing. An idle builder should look idle, not look broken.

                      Not in scope, correctly omitted: gate queue rail, live panes, find-node, add-machine. Those are later units per D8 and are absent rather than stubbed, which was the right call.

                      Scope of a fix. Restore the label prefixes and icons, the header bar with its counts, machine metadata where the wire carries it (and omit what it does not — do not invent 41% LOAD), a visible idle baseline for sparklines, and the offline-lot placeholder. Fix #111 in the same pass since it is one line and compounds all of this.

                      Testing. A fidelity check the current suite has no equivalent of: render a fixture matching the mockup's data and assert the label prefixes, header counts and sparkline baseline are present. Component tests that assert only "the name renders" cannot catch a missing prefix.

                      Found by the architect comparing renders after merge. Spec 83's review verified tokens and structure and never compared against the mockup — that gap is the reason this shipped.

                      Activity

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

                      Metadata

                      Metadata

                      Assignees

                      No one assigned

                        Labels

                        area/dashboardTower web dashboardfork-onlyDeliberately not upstreamed to cluesmith/codev

                        Projects

                        No projects

                          Milestone

                          No milestone

                          Relationships

                          None yet

                          Development

                          No branches or pull requests

                          Issue actions

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

                          v2 site view is a wireframe of the approved design, not the design #112

                          Description

                          @pseudoseed

                          Problem. Comparing the shipped /v2/ render against codev/research/v2-mockups/01-site.png side by side, the structure and palette match but almost everything that makes the design readable was dropped. It reads as a wireframe of the mockup.

                          Spec 83 checked tokens, containment, rust discipline and D8 chrome absence — all of which passed. Nothing checked fidelity against the mockup itself, which is why this got through review.

                          Missing, all present in the approved design:

                          Approved (01-site.png)Shipped
                          Header: Porch mark, SITE REGISTER · 2 MACHINES · 5 WORKSPACES · 11 BUILDERS, FIND NODE ⌘K, ADD MACHINE, gate badgelocalhost THIS MACHINE and nothing else
                          tower-01 MAC STUDIO · FOREMAN'S RIG + ONLINE · 41% LOADno machine metadata at all
                          WORKSPACE / CHECKOUT with iconbare CODEV-1455
                          architect/checkout-v3 with icon and status dotbare main
                          builder/pay-2201bare spir-83
                          Sparkline as visible bars of varying heighta row of dots, effectively invisible
                          Offline machine shows RECONNECT TO RESUME in its empty lotnothing
                          Plots sized to content, ~3 across, compactstretched to the tallest in the row (#111)

                          The naming convention is the biggest single loss.workspace/, architect/ and builder/ prefixes are how the design tells four node kinds apart at a glance. Without them every row is an undifferentiated string, and the hierarchy has to be inferred from indentation alone — which is the outline FR-1 explicitly rejects.

                          Sparklines..spark i bars render at the trace value, so an all-zero trace is zero-height and reads as dots. The mockup's idle builders show a visible flat baseline (....... at a consistent low height) rather than nothing. An idle builder should look idle, not look broken.

                          Not in scope, correctly omitted: gate queue rail, live panes, find-node, add-machine. Those are later units per D8 and are absent rather than stubbed, which was the right call.

                          Scope of a fix. Restore the label prefixes and icons, the header bar with its counts, machine metadata where the wire carries it (and omit what it does not — do not invent 41% LOAD), a visible idle baseline for sparklines, and the offline-lot placeholder. Fix #111 in the same pass since it is one line and compounds all of this.

                          Testing. A fidelity check the current suite has no equivalent of: render a fixture matching the mockup's data and assert the label prefixes, header counts and sparkline baseline are present. Component tests that assert only "the name renders" cannot catch a missing prefix.

                          Found by the architect comparing renders after merge. Spec 83's review verified tokens and structure and never compared against the mockup — that gap is the reason this shipped.

                          Activity

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

                          Metadata

                          Metadata

                          Assignees

                          No one assigned

                            Labels

                            area/dashboardTower web dashboardfork-onlyDeliberately not upstreamed to cluesmith/codev

                            Projects

                            No projects

                              Milestone

                              No milestone

                              Relationships

                              None yet

                              Development

                              No branches or pull requests

                              Issue actions

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

                              v2 site view is a wireframe of the approved design, not the design #112

                              Description

                              @pseudoseed

                              Problem. Comparing the shipped /v2/ render against codev/research/v2-mockups/01-site.png side by side, the structure and palette match but almost everything that makes the design readable was dropped. It reads as a wireframe of the mockup.

                              Spec 83 checked tokens, containment, rust discipline and D8 chrome absence — all of which passed. Nothing checked fidelity against the mockup itself, which is why this got through review.

                              Missing, all present in the approved design:

                              Approved (01-site.png)Shipped
                              Header: Porch mark, SITE REGISTER · 2 MACHINES · 5 WORKSPACES · 11 BUILDERS, FIND NODE ⌘K, ADD MACHINE, gate badgelocalhost THIS MACHINE and nothing else
                              tower-01 MAC STUDIO · FOREMAN'S RIG + ONLINE · 41% LOADno machine metadata at all
                              WORKSPACE / CHECKOUT with iconbare CODEV-1455
                              architect/checkout-v3 with icon and status dotbare main
                              builder/pay-2201bare spir-83
                              Sparkline as visible bars of varying heighta row of dots, effectively invisible
                              Offline machine shows RECONNECT TO RESUME in its empty lotnothing
                              Plots sized to content, ~3 across, compactstretched to the tallest in the row (#111)

                              The naming convention is the biggest single loss.workspace/, architect/ and builder/ prefixes are how the design tells four node kinds apart at a glance. Without them every row is an undifferentiated string, and the hierarchy has to be inferred from indentation alone — which is the outline FR-1 explicitly rejects.

                              Sparklines..spark i bars render at the trace value, so an all-zero trace is zero-height and reads as dots. The mockup's idle builders show a visible flat baseline (....... at a consistent low height) rather than nothing. An idle builder should look idle, not look broken.

                              Not in scope, correctly omitted: gate queue rail, live panes, find-node, add-machine. Those are later units per D8 and are absent rather than stubbed, which was the right call.

                              Scope of a fix. Restore the label prefixes and icons, the header bar with its counts, machine metadata where the wire carries it (and omit what it does not — do not invent 41% LOAD), a visible idle baseline for sparklines, and the offline-lot placeholder. Fix #111 in the same pass since it is one line and compounds all of this.

                              Testing. A fidelity check the current suite has no equivalent of: render a fixture matching the mockup's data and assert the label prefixes, header counts and sparkline baseline are present. Component tests that assert only "the name renders" cannot catch a missing prefix.

                              Found by the architect comparing renders after merge. Spec 83's review verified tokens and structure and never compared against the mockup — that gap is the reason this shipped.

                              Activity

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

                              Metadata

                              Metadata

                              Assignees

                              No one assigned

                                Labels

                                area/dashboardTower web dashboardfork-onlyDeliberately not upstreamed to cluesmith/codev

                                Projects

                                No projects

                                  Milestone

                                  No milestone

                                  Relationships

                                  None yet

                                  Development

                                  No branches or pull requests

                                  Issue actions