finding(docs/types): five documentation and example sites author the retired ChartDataSeries.data and teach categories as X-axis labels #7112

Description

@os-warren

Measured while implementing #6896 (PR #7111), filed unassigned and not fixed there — that
card's dispatched file surface is packages/types/src/data-display.ts + its zod twin, the
retirement machinery, and packages/plugin-charts/ only where a comment must follow. These five
sites are outside it. Recorded here so they are not lost.

Measured on origin/main2c3cd1b75.

The sites

All five author the inline-static-data chart model that #6896's ruling retired — a populated
series[].data — and four of them pair it with month names in categories, which the docblock
described as X-axis labels and the renderer reads as a series list:

filesitesshape
packages/types/examples/data-display-examples.json2categories: ["Jan"…"Jun"] + series[].data
content/docs/api/schema-reference.md (~464, ~469)2same, plus a property table row reading categories | string[] | X-axis
content/docs/api/schema-reference.md (~966)1categories: ["Mon"…"Fri"] + series[{ name, data }]
content/docs/core/report-schema.mdx (~324)1categories: ['January'…] + series[{ name, type, data }]

Why this matters, and what it is not

Each of these renders an empty chart today, before any retirement: normalizeSeries never
reads series[].data, and categories is ignored outright whenever series is present. So an
author copying any of them gets neither the plotted numbers nor the labelled axis the page
promises. That is the same textbook-vs-implementation fork #6896 was graded p2 for, in the
channel authors actually read.

Once PR #7111 lands, the failure mode changes but does not go away: the copied data becomes a
named parse refusal carrying its remedy, which is a strict improvement over the silent drop
— but the pages still teach the wrong model, and the categories prose in
schema-reference.md's property table still contradicts the corrected declaration.

⚠️The zero this corrects.#6896's ruling records zero authorship of a populated
series[].data outside tests across packages/ / apps/ / examples/. Re-measured on
2c3cd1b75 with a control that had to hit in the same query — the instrument scores 4 sites in
packages/types/src/__tests__/report-schema-authoring-face.test.ts, so it was not blind — one
site sits inside those roots (packages/types/examples/) and four outside them. This does
not disturb the ruling's conclusion: none of the five is a consumer. Nothing imports,
type-checks, parses or renders any of them; packages/types publishes only dist, README.md,
CHANGELOG.md and LICENSE, so examples/ never ships; and the mdx block sits inside a
plaintext fence, so check:doc-snippets does not cover it. They are instances of the
divergence, not users of a working inline-data model — which is why the retirement was still
the right call and why they were left for a separate, docs-reviewed change.

What a fix would do

Rewrite each example into the model the renderer implements — chart-level data rows,
per-series name / dataKey naming the column, xAxisKey naming the category axis — and
correct schema-reference.md's categories table row to the series-list meaning, matching the
declaration PR #7111 corrected. Worth deciding as part of it: chart-level data and xAxisKey
are not declared on ChartSchema at all and survive only through BaseSchema's index
signature, so the correct replacement text currently documents undeclared keys. That is a
separate contract question and should not be settled inside a docs pass.

⛔ Not the same defect family as #4466 / #4497 / #4507 / #4673 / #4683 / #4695, which are all
about buildChartSeries on the dataset-bound path. Deduped against those and against #6896
before filing.

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

    domain:uiobjectui ui stream: fix lands on the published library or apps — objectui execution seatfinding

    Type

    No type

    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

      finding(docs/types): five documentation and example sites author the retired ChartDataSeries.data and teach categories as X-axis labels #7112

      Description

      @os-warren

      Measured while implementing #6896 (PR #7111), filed unassigned and not fixed there — that
      card's dispatched file surface is packages/types/src/data-display.ts + its zod twin, the
      retirement machinery, and packages/plugin-charts/ only where a comment must follow. These five
      sites are outside it. Recorded here so they are not lost.

      Measured on origin/main2c3cd1b75.

      The sites

      All five author the inline-static-data chart model that #6896's ruling retired — a populated
      series[].data — and four of them pair it with month names in categories, which the docblock
      described as X-axis labels and the renderer reads as a series list:

      filesitesshape
      packages/types/examples/data-display-examples.json2categories: ["Jan"…"Jun"] + series[].data
      content/docs/api/schema-reference.md (~464, ~469)2same, plus a property table row reading categories | string[] | X-axis
      content/docs/api/schema-reference.md (~966)1categories: ["Mon"…"Fri"] + series[{ name, data }]
      content/docs/core/report-schema.mdx (~324)1categories: ['January'…] + series[{ name, type, data }]

      Why this matters, and what it is not

      Each of these renders an empty chart today, before any retirement: normalizeSeries never
      reads series[].data, and categories is ignored outright whenever series is present. So an
      author copying any of them gets neither the plotted numbers nor the labelled axis the page
      promises. That is the same textbook-vs-implementation fork #6896 was graded p2 for, in the
      channel authors actually read.

      Once PR #7111 lands, the failure mode changes but does not go away: the copied data becomes a
      named parse refusal carrying its remedy, which is a strict improvement over the silent drop
      — but the pages still teach the wrong model, and the categories prose in
      schema-reference.md's property table still contradicts the corrected declaration.

      ⚠️The zero this corrects.#6896's ruling records zero authorship of a populated
      series[].data outside tests across packages/ / apps/ / examples/. Re-measured on
      2c3cd1b75 with a control that had to hit in the same query — the instrument scores 4 sites in
      packages/types/src/__tests__/report-schema-authoring-face.test.ts, so it was not blind — one
      site sits inside those roots (packages/types/examples/) and four outside them. This does
      not disturb the ruling's conclusion: none of the five is a consumer. Nothing imports,
      type-checks, parses or renders any of them; packages/types publishes only dist, README.md,
      CHANGELOG.md and LICENSE, so examples/ never ships; and the mdx block sits inside a
      plaintext fence, so check:doc-snippets does not cover it. They are instances of the
      divergence, not users of a working inline-data model — which is why the retirement was still
      the right call and why they were left for a separate, docs-reviewed change.

      What a fix would do

      Rewrite each example into the model the renderer implements — chart-level data rows,
      per-series name / dataKey naming the column, xAxisKey naming the category axis — and
      correct schema-reference.md's categories table row to the series-list meaning, matching the
      declaration PR #7111 corrected. Worth deciding as part of it: chart-level data and xAxisKey
      are not declared on ChartSchema at all and survive only through BaseSchema's index
      signature, so the correct replacement text currently documents undeclared keys. That is a
      separate contract question and should not be settled inside a docs pass.

      ⛔ Not the same defect family as #4466 / #4497 / #4507 / #4673 / #4683 / #4695, which are all
      about buildChartSeries on the dataset-bound path. Deduped against those and against #6896
      before filing.

      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

        domain:uiobjectui ui stream: fix lands on the published library or apps — objectui execution seatfinding

        Type

        No type

        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

          finding(docs/types): five documentation and example sites author the retired ChartDataSeries.data and teach categories as X-axis labels #7112

          Description

          @os-warren

          Measured while implementing #6896 (PR #7111), filed unassigned and not fixed there — that
          card's dispatched file surface is packages/types/src/data-display.ts + its zod twin, the
          retirement machinery, and packages/plugin-charts/ only where a comment must follow. These five
          sites are outside it. Recorded here so they are not lost.

          Measured on origin/main2c3cd1b75.

          The sites

          All five author the inline-static-data chart model that #6896's ruling retired — a populated
          series[].data — and four of them pair it with month names in categories, which the docblock
          described as X-axis labels and the renderer reads as a series list:

          filesitesshape
          packages/types/examples/data-display-examples.json2categories: ["Jan"…"Jun"] + series[].data
          content/docs/api/schema-reference.md (~464, ~469)2same, plus a property table row reading categories | string[] | X-axis
          content/docs/api/schema-reference.md (~966)1categories: ["Mon"…"Fri"] + series[{ name, data }]
          content/docs/core/report-schema.mdx (~324)1categories: ['January'…] + series[{ name, type, data }]

          Why this matters, and what it is not

          Each of these renders an empty chart today, before any retirement: normalizeSeries never
          reads series[].data, and categories is ignored outright whenever series is present. So an
          author copying any of them gets neither the plotted numbers nor the labelled axis the page
          promises. That is the same textbook-vs-implementation fork #6896 was graded p2 for, in the
          channel authors actually read.

          Once PR #7111 lands, the failure mode changes but does not go away: the copied data becomes a
          named parse refusal carrying its remedy, which is a strict improvement over the silent drop
          — but the pages still teach the wrong model, and the categories prose in
          schema-reference.md's property table still contradicts the corrected declaration.

          ⚠️The zero this corrects.#6896's ruling records zero authorship of a populated
          series[].data outside tests across packages/ / apps/ / examples/. Re-measured on
          2c3cd1b75 with a control that had to hit in the same query — the instrument scores 4 sites in
          packages/types/src/__tests__/report-schema-authoring-face.test.ts, so it was not blind — one
          site sits inside those roots (packages/types/examples/) and four outside them. This does
          not disturb the ruling's conclusion: none of the five is a consumer. Nothing imports,
          type-checks, parses or renders any of them; packages/types publishes only dist, README.md,
          CHANGELOG.md and LICENSE, so examples/ never ships; and the mdx block sits inside a
          plaintext fence, so check:doc-snippets does not cover it. They are instances of the
          divergence, not users of a working inline-data model — which is why the retirement was still
          the right call and why they were left for a separate, docs-reviewed change.

          What a fix would do

          Rewrite each example into the model the renderer implements — chart-level data rows,
          per-series name / dataKey naming the column, xAxisKey naming the category axis — and
          correct schema-reference.md's categories table row to the series-list meaning, matching the
          declaration PR #7111 corrected. Worth deciding as part of it: chart-level data and xAxisKey
          are not declared on ChartSchema at all and survive only through BaseSchema's index
          signature, so the correct replacement text currently documents undeclared keys. That is a
          separate contract question and should not be settled inside a docs pass.

          ⛔ Not the same defect family as #4466 / #4497 / #4507 / #4673 / #4683 / #4695, which are all
          about buildChartSeries on the dataset-bound path. Deduped against those and against #6896
          before filing.

          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

            domain:uiobjectui ui stream: fix lands on the published library or apps — objectui execution seatfinding

            Type

            No type

            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

              finding(docs/types): five documentation and example sites author the retired ChartDataSeries.data and teach categories as X-axis labels #7112

              Description

              @os-warren

              Measured while implementing #6896 (PR #7111), filed unassigned and not fixed there — that
              card's dispatched file surface is packages/types/src/data-display.ts + its zod twin, the
              retirement machinery, and packages/plugin-charts/ only where a comment must follow. These five
              sites are outside it. Recorded here so they are not lost.

              Measured on origin/main2c3cd1b75.

              The sites

              All five author the inline-static-data chart model that #6896's ruling retired — a populated
              series[].data — and four of them pair it with month names in categories, which the docblock
              described as X-axis labels and the renderer reads as a series list:

              filesitesshape
              packages/types/examples/data-display-examples.json2categories: ["Jan"…"Jun"] + series[].data
              content/docs/api/schema-reference.md (~464, ~469)2same, plus a property table row reading categories | string[] | X-axis
              content/docs/api/schema-reference.md (~966)1categories: ["Mon"…"Fri"] + series[{ name, data }]
              content/docs/core/report-schema.mdx (~324)1categories: ['January'…] + series[{ name, type, data }]

              Why this matters, and what it is not

              Each of these renders an empty chart today, before any retirement: normalizeSeries never
              reads series[].data, and categories is ignored outright whenever series is present. So an
              author copying any of them gets neither the plotted numbers nor the labelled axis the page
              promises. That is the same textbook-vs-implementation fork #6896 was graded p2 for, in the
              channel authors actually read.

              Once PR #7111 lands, the failure mode changes but does not go away: the copied data becomes a
              named parse refusal carrying its remedy, which is a strict improvement over the silent drop
              — but the pages still teach the wrong model, and the categories prose in
              schema-reference.md's property table still contradicts the corrected declaration.

              ⚠️The zero this corrects.#6896's ruling records zero authorship of a populated
              series[].data outside tests across packages/ / apps/ / examples/. Re-measured on
              2c3cd1b75 with a control that had to hit in the same query — the instrument scores 4 sites in
              packages/types/src/__tests__/report-schema-authoring-face.test.ts, so it was not blind — one
              site sits inside those roots (packages/types/examples/) and four outside them. This does
              not disturb the ruling's conclusion: none of the five is a consumer. Nothing imports,
              type-checks, parses or renders any of them; packages/types publishes only dist, README.md,
              CHANGELOG.md and LICENSE, so examples/ never ships; and the mdx block sits inside a
              plaintext fence, so check:doc-snippets does not cover it. They are instances of the
              divergence, not users of a working inline-data model — which is why the retirement was still
              the right call and why they were left for a separate, docs-reviewed change.

              What a fix would do

              Rewrite each example into the model the renderer implements — chart-level data rows,
              per-series name / dataKey naming the column, xAxisKey naming the category axis — and
              correct schema-reference.md's categories table row to the series-list meaning, matching the
              declaration PR #7111 corrected. Worth deciding as part of it: chart-level data and xAxisKey
              are not declared on ChartSchema at all and survive only through BaseSchema's index
              signature, so the correct replacement text currently documents undeclared keys. That is a
              separate contract question and should not be settled inside a docs pass.

              ⛔ Not the same defect family as #4466 / #4497 / #4507 / #4673 / #4683 / #4695, which are all
              about buildChartSeries on the dataset-bound path. Deduped against those and against #6896
              before filing.

              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

                domain:uiobjectui ui stream: fix lands on the published library or apps — objectui execution seatfinding

                Type

                No type

                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

                  finding(docs/types): five documentation and example sites author the retired ChartDataSeries.data and teach categories as X-axis labels #7112

                  Description

                  @os-warren

                  Measured while implementing #6896 (PR #7111), filed unassigned and not fixed there — that
                  card's dispatched file surface is packages/types/src/data-display.ts + its zod twin, the
                  retirement machinery, and packages/plugin-charts/ only where a comment must follow. These five
                  sites are outside it. Recorded here so they are not lost.

                  Measured on origin/main2c3cd1b75.

                  The sites

                  All five author the inline-static-data chart model that #6896's ruling retired — a populated
                  series[].data — and four of them pair it with month names in categories, which the docblock
                  described as X-axis labels and the renderer reads as a series list:

                  filesitesshape
                  packages/types/examples/data-display-examples.json2categories: ["Jan"…"Jun"] + series[].data
                  content/docs/api/schema-reference.md (~464, ~469)2same, plus a property table row reading categories | string[] | X-axis
                  content/docs/api/schema-reference.md (~966)1categories: ["Mon"…"Fri"] + series[{ name, data }]
                  content/docs/core/report-schema.mdx (~324)1categories: ['January'…] + series[{ name, type, data }]

                  Why this matters, and what it is not

                  Each of these renders an empty chart today, before any retirement: normalizeSeries never
                  reads series[].data, and categories is ignored outright whenever series is present. So an
                  author copying any of them gets neither the plotted numbers nor the labelled axis the page
                  promises. That is the same textbook-vs-implementation fork #6896 was graded p2 for, in the
                  channel authors actually read.

                  Once PR #7111 lands, the failure mode changes but does not go away: the copied data becomes a
                  named parse refusal carrying its remedy, which is a strict improvement over the silent drop
                  — but the pages still teach the wrong model, and the categories prose in
                  schema-reference.md's property table still contradicts the corrected declaration.

                  ⚠️The zero this corrects.#6896's ruling records zero authorship of a populated
                  series[].data outside tests across packages/ / apps/ / examples/. Re-measured on
                  2c3cd1b75 with a control that had to hit in the same query — the instrument scores 4 sites in
                  packages/types/src/__tests__/report-schema-authoring-face.test.ts, so it was not blind — one
                  site sits inside those roots (packages/types/examples/) and four outside them. This does
                  not disturb the ruling's conclusion: none of the five is a consumer. Nothing imports,
                  type-checks, parses or renders any of them; packages/types publishes only dist, README.md,
                  CHANGELOG.md and LICENSE, so examples/ never ships; and the mdx block sits inside a
                  plaintext fence, so check:doc-snippets does not cover it. They are instances of the
                  divergence, not users of a working inline-data model — which is why the retirement was still
                  the right call and why they were left for a separate, docs-reviewed change.

                  What a fix would do

                  Rewrite each example into the model the renderer implements — chart-level data rows,
                  per-series name / dataKey naming the column, xAxisKey naming the category axis — and
                  correct schema-reference.md's categories table row to the series-list meaning, matching the
                  declaration PR #7111 corrected. Worth deciding as part of it: chart-level data and xAxisKey
                  are not declared on ChartSchema at all and survive only through BaseSchema's index
                  signature, so the correct replacement text currently documents undeclared keys. That is a
                  separate contract question and should not be settled inside a docs pass.

                  ⛔ Not the same defect family as #4466 / #4497 / #4507 / #4673 / #4683 / #4695, which are all
                  about buildChartSeries on the dataset-bound path. Deduped against those and against #6896
                  before filing.

                  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

                    domain:uiobjectui ui stream: fix lands on the published library or apps — objectui execution seatfinding

                    Type

                    No type

                    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

                      finding(docs/types): five documentation and example sites author the retired ChartDataSeries.data and teach categories as X-axis labels #7112

                      Description

                      @os-warren

                      Measured while implementing #6896 (PR #7111), filed unassigned and not fixed there — that
                      card's dispatched file surface is packages/types/src/data-display.ts + its zod twin, the
                      retirement machinery, and packages/plugin-charts/ only where a comment must follow. These five
                      sites are outside it. Recorded here so they are not lost.

                      Measured on origin/main2c3cd1b75.

                      The sites

                      All five author the inline-static-data chart model that #6896's ruling retired — a populated
                      series[].data — and four of them pair it with month names in categories, which the docblock
                      described as X-axis labels and the renderer reads as a series list:

                      filesitesshape
                      packages/types/examples/data-display-examples.json2categories: ["Jan"…"Jun"] + series[].data
                      content/docs/api/schema-reference.md (~464, ~469)2same, plus a property table row reading categories | string[] | X-axis
                      content/docs/api/schema-reference.md (~966)1categories: ["Mon"…"Fri"] + series[{ name, data }]
                      content/docs/core/report-schema.mdx (~324)1categories: ['January'…] + series[{ name, type, data }]

                      Why this matters, and what it is not

                      Each of these renders an empty chart today, before any retirement: normalizeSeries never
                      reads series[].data, and categories is ignored outright whenever series is present. So an
                      author copying any of them gets neither the plotted numbers nor the labelled axis the page
                      promises. That is the same textbook-vs-implementation fork #6896 was graded p2 for, in the
                      channel authors actually read.

                      Once PR #7111 lands, the failure mode changes but does not go away: the copied data becomes a
                      named parse refusal carrying its remedy, which is a strict improvement over the silent drop
                      — but the pages still teach the wrong model, and the categories prose in
                      schema-reference.md's property table still contradicts the corrected declaration.

                      ⚠️The zero this corrects.#6896's ruling records zero authorship of a populated
                      series[].data outside tests across packages/ / apps/ / examples/. Re-measured on
                      2c3cd1b75 with a control that had to hit in the same query — the instrument scores 4 sites in
                      packages/types/src/__tests__/report-schema-authoring-face.test.ts, so it was not blind — one
                      site sits inside those roots (packages/types/examples/) and four outside them. This does
                      not disturb the ruling's conclusion: none of the five is a consumer. Nothing imports,
                      type-checks, parses or renders any of them; packages/types publishes only dist, README.md,
                      CHANGELOG.md and LICENSE, so examples/ never ships; and the mdx block sits inside a
                      plaintext fence, so check:doc-snippets does not cover it. They are instances of the
                      divergence, not users of a working inline-data model — which is why the retirement was still
                      the right call and why they were left for a separate, docs-reviewed change.

                      What a fix would do

                      Rewrite each example into the model the renderer implements — chart-level data rows,
                      per-series name / dataKey naming the column, xAxisKey naming the category axis — and
                      correct schema-reference.md's categories table row to the series-list meaning, matching the
                      declaration PR #7111 corrected. Worth deciding as part of it: chart-level data and xAxisKey
                      are not declared on ChartSchema at all and survive only through BaseSchema's index
                      signature, so the correct replacement text currently documents undeclared keys. That is a
                      separate contract question and should not be settled inside a docs pass.

                      ⛔ Not the same defect family as #4466 / #4497 / #4507 / #4673 / #4683 / #4695, which are all
                      about buildChartSeries on the dataset-bound path. Deduped against those and against #6896
                      before filing.

                      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

                        domain:uiobjectui ui stream: fix lands on the published library or apps — objectui execution seatfinding

                        Type

                        No type

                        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

                          finding(docs/types): five documentation and example sites author the retired ChartDataSeries.data and teach categories as X-axis labels #7112

                          Description

                          @os-warren

                          Measured while implementing #6896 (PR #7111), filed unassigned and not fixed there — that
                          card's dispatched file surface is packages/types/src/data-display.ts + its zod twin, the
                          retirement machinery, and packages/plugin-charts/ only where a comment must follow. These five
                          sites are outside it. Recorded here so they are not lost.

                          Measured on origin/main2c3cd1b75.

                          The sites

                          All five author the inline-static-data chart model that #6896's ruling retired — a populated
                          series[].data — and four of them pair it with month names in categories, which the docblock
                          described as X-axis labels and the renderer reads as a series list:

                          filesitesshape
                          packages/types/examples/data-display-examples.json2categories: ["Jan"…"Jun"] + series[].data
                          content/docs/api/schema-reference.md (~464, ~469)2same, plus a property table row reading categories | string[] | X-axis
                          content/docs/api/schema-reference.md (~966)1categories: ["Mon"…"Fri"] + series[{ name, data }]
                          content/docs/core/report-schema.mdx (~324)1categories: ['January'…] + series[{ name, type, data }]

                          Why this matters, and what it is not

                          Each of these renders an empty chart today, before any retirement: normalizeSeries never
                          reads series[].data, and categories is ignored outright whenever series is present. So an
                          author copying any of them gets neither the plotted numbers nor the labelled axis the page
                          promises. That is the same textbook-vs-implementation fork #6896 was graded p2 for, in the
                          channel authors actually read.

                          Once PR #7111 lands, the failure mode changes but does not go away: the copied data becomes a
                          named parse refusal carrying its remedy, which is a strict improvement over the silent drop
                          — but the pages still teach the wrong model, and the categories prose in
                          schema-reference.md's property table still contradicts the corrected declaration.

                          ⚠️The zero this corrects.#6896's ruling records zero authorship of a populated
                          series[].data outside tests across packages/ / apps/ / examples/. Re-measured on
                          2c3cd1b75 with a control that had to hit in the same query — the instrument scores 4 sites in
                          packages/types/src/__tests__/report-schema-authoring-face.test.ts, so it was not blind — one
                          site sits inside those roots (packages/types/examples/) and four outside them. This does
                          not disturb the ruling's conclusion: none of the five is a consumer. Nothing imports,
                          type-checks, parses or renders any of them; packages/types publishes only dist, README.md,
                          CHANGELOG.md and LICENSE, so examples/ never ships; and the mdx block sits inside a
                          plaintext fence, so check:doc-snippets does not cover it. They are instances of the
                          divergence, not users of a working inline-data model — which is why the retirement was still
                          the right call and why they were left for a separate, docs-reviewed change.

                          What a fix would do

                          Rewrite each example into the model the renderer implements — chart-level data rows,
                          per-series name / dataKey naming the column, xAxisKey naming the category axis — and
                          correct schema-reference.md's categories table row to the series-list meaning, matching the
                          declaration PR #7111 corrected. Worth deciding as part of it: chart-level data and xAxisKey
                          are not declared on ChartSchema at all and survive only through BaseSchema's index
                          signature, so the correct replacement text currently documents undeclared keys. That is a
                          separate contract question and should not be settled inside a docs pass.

                          ⛔ Not the same defect family as #4466 / #4497 / #4507 / #4673 / #4683 / #4695, which are all
                          about buildChartSeries on the dataset-bound path. Deduped against those and against #6896
                          before filing.

                          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

                            domain:uiobjectui ui stream: fix lands on the published library or apps — objectui execution seatfinding

                            Type

                            No type

                            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

                              finding(docs/types): five documentation and example sites author the retired ChartDataSeries.data and teach categories as X-axis labels #7112

                              Description

                              @os-warren

                              Measured while implementing #6896 (PR #7111), filed unassigned and not fixed there — that
                              card's dispatched file surface is packages/types/src/data-display.ts + its zod twin, the
                              retirement machinery, and packages/plugin-charts/ only where a comment must follow. These five
                              sites are outside it. Recorded here so they are not lost.

                              Measured on origin/main2c3cd1b75.

                              The sites

                              All five author the inline-static-data chart model that #6896's ruling retired — a populated
                              series[].data — and four of them pair it with month names in categories, which the docblock
                              described as X-axis labels and the renderer reads as a series list:

                              filesitesshape
                              packages/types/examples/data-display-examples.json2categories: ["Jan"…"Jun"] + series[].data
                              content/docs/api/schema-reference.md (~464, ~469)2same, plus a property table row reading categories | string[] | X-axis
                              content/docs/api/schema-reference.md (~966)1categories: ["Mon"…"Fri"] + series[{ name, data }]
                              content/docs/core/report-schema.mdx (~324)1categories: ['January'…] + series[{ name, type, data }]

                              Why this matters, and what it is not

                              Each of these renders an empty chart today, before any retirement: normalizeSeries never
                              reads series[].data, and categories is ignored outright whenever series is present. So an
                              author copying any of them gets neither the plotted numbers nor the labelled axis the page
                              promises. That is the same textbook-vs-implementation fork #6896 was graded p2 for, in the
                              channel authors actually read.

                              Once PR #7111 lands, the failure mode changes but does not go away: the copied data becomes a
                              named parse refusal carrying its remedy, which is a strict improvement over the silent drop
                              — but the pages still teach the wrong model, and the categories prose in
                              schema-reference.md's property table still contradicts the corrected declaration.

                              ⚠️The zero this corrects.#6896's ruling records zero authorship of a populated
                              series[].data outside tests across packages/ / apps/ / examples/. Re-measured on
                              2c3cd1b75 with a control that had to hit in the same query — the instrument scores 4 sites in
                              packages/types/src/__tests__/report-schema-authoring-face.test.ts, so it was not blind — one
                              site sits inside those roots (packages/types/examples/) and four outside them. This does
                              not disturb the ruling's conclusion: none of the five is a consumer. Nothing imports,
                              type-checks, parses or renders any of them; packages/types publishes only dist, README.md,
                              CHANGELOG.md and LICENSE, so examples/ never ships; and the mdx block sits inside a
                              plaintext fence, so check:doc-snippets does not cover it. They are instances of the
                              divergence, not users of a working inline-data model — which is why the retirement was still
                              the right call and why they were left for a separate, docs-reviewed change.

                              What a fix would do

                              Rewrite each example into the model the renderer implements — chart-level data rows,
                              per-series name / dataKey naming the column, xAxisKey naming the category axis — and
                              correct schema-reference.md's categories table row to the series-list meaning, matching the
                              declaration PR #7111 corrected. Worth deciding as part of it: chart-level data and xAxisKey
                              are not declared on ChartSchema at all and survive only through BaseSchema's index
                              signature, so the correct replacement text currently documents undeclared keys. That is a
                              separate contract question and should not be settled inside a docs pass.

                              ⛔ Not the same defect family as #4466 / #4497 / #4507 / #4673 / #4683 / #4695, which are all
                              about buildChartSeries on the dataset-bound path. Deduped against those and against #6896
                              before filing.

                              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

                                domain:uiobjectui ui stream: fix lands on the published library or apps — objectui execution seatfinding

                                Type

                                No type

                                Projects

                                No projects

                                  Milestone

                                  No milestone

                                  Relationships

                                  None yet

                                  Development

                                  No branches or pull requests

                                  Issue actions