Skip to content

docs: the V10 README with the Sundown carousel, and eight guides - #9

Merged
debabsah merged 34 commits into
mainfrom
docs/readme-and-guides
Oct 6, 2026
Merged

debabsah merged 34 commits into
mainfrom
docs/readme-and-guides

Conversation

@debabsah

@debabsah debabsah commented Oct 3, 2026 •

Copy link
Copy Markdown
Owner

The V10 README, with its one visual slot filled, and the eight guides it links, brought up to 0.6.0.

README

  • V10, with one change the author made: the visual now sits between the description and the job table (ledger D2 updated). Otherwise the structure is unchanged: the description, the job table (what you can do, how Superset up to 6.1.0 handles it with a source per cell, and the guide), install, a short example, requirements and limits, and the reference links. The only content changes are factual: lines for 0.5.0 (adopt, the CSV-reports install) and the status, now 0.6.0.
  • The visual slot: an animated WebP carousel of the Sundown dashboard (docs/images/sundown.webp, 1600×1000, a 10.5 s loop, 4.5 MB).
    • It opens with the Overview in five palettes.
    • It then scrolls through the Overview, Evening ramp, Storage and Supply tabs in Coral teal, and shows About.
    • Its caption reads "Sundown, a six-tab dashboard built using Chartwright."
    • Checked on this branch's rendered README in Chromium: it shows at about 860 px wide and animates.

Guides in docs/

  • The guides: MOVE-BETWEEN-INSTANCES, CLONE-A-DASHBOARD, AI-AGENTS, DASHBOARDS-FROM-CODE, DEPLOY-FROM-GIT, HISTORY-AND-ROLLBACK, SUPERSET-VERSIONS and LIMITS, plus STABILITY (the 1.0 policy).
  • Updated for 0.6.0:
    • SUPERSET-VERSIONS lists the refused and warned fields from chartwright/versions.py, four live CI specs (17 chart types) and the new version differences.
    • LIMITS counts 17 chart types.
    • AI-AGENTS describes the brief's two recommended styles, which the skill offers you to accept or change.

Checks

  • The offline suite passes (2429), and every local link and image path resolves.

Before this merges

  • 0.6.0 is on PyPI.
  • The visual is made.
  • The author approves the merge.

The README leads with what each reader can do, next to how Superset 6.1.0
handles the same job (each cell sourced), and links a guide per job:
MOVE-BETWEEN-INSTANCES, CLONE-A-DASHBOARD, AI-AGENTS, DEPLOY-FROM-GIT,
HISTORY-AND-ROLLBACK, SUPERSET-VERSIONS, DASHBOARDS-FROM-CODE and LIMITS.
Every spec in the guides passes `chartwright validate`, and every limit
states what to do instead.
debabsah added a commit that referenced this pull request Oct 4, 2026
…d a visible-text check (#23)

* fix: print every path with forward slashes

compile's and redesign's output, advise --fix's written, decompile's output and apply's backup printed str(path), which uses backslashes on Windows. They now print as_posix(), as the standards commands already do.

* feat: standards exceptions, release floors, classification locks, themes and a visible-text check

standards/waivers.yaml records the dashboards that may deviate from a lock: dashboard, locked rule or content item, owner, reason, expiry and an optional layer. A waived finding passes and is reported with who, why and until when; standards apply leaves the item as it is; design.ignore still can't lift a lock. An expired waiver fails standards check and advise (standard.waiver-expired) for the specs checked, and only warns in standards apply, check, apply and plan; restore never reads it. --as-of fixes the day, and standards check --report lists expired, expiring and unmatched waivers.

A standards file may declare min_superset. check, apply and plan, on the CLI and through MCP, hold back for each instance the standard's content its release can't take and list it as held; an author's own field still meets the version check. standards check --superset-version shows the same offline.

dashboard.theme names a Superset 6.0+ theme, resolved by name on each instance and compiled as its theme_id; decompile reads it back and plan compares it when the spec names one. Standards gain theme and classification slots, and a locked classification keeps its rows.

standards verify-visible opens the deployed dashboard in headless Chromium and fails when a locked header or footer line is hidden; Playwright is an optional extra (chartwright[visual]). The live CI job runs it as an optional step.

* fix: a stated release is checked against the instance, and a floor over a lock is named

check, apply and plan (and their MCP tools) held standard content back by --superset-version without asking the instance, so a wrong flag dropped content the instance takes, locked content included. When the standard could hold something, the stated release is now compared with the one the instance reports: a different one is refused with superset_version_mismatch before anything is resolved or written, and an unconfirmed one holds with a warning. A file whose min_superset holds back content a lock covers warns when the folder loads (floor_suspends_lock), and a deploy that holds locked content lists it with locked_by and says its lock does not apply there.

* fix: a waiver pinned to a spec path ignores specs that take its slug

A waiver by slug trusted a field the spec's author edits: setting a spec's slug to a waived one inherited the waiver unseen. A waiver may now name spec and slug together and then applies only to the file at that path while it keeps the slug; another spec with the slug gets nothing and is told why. A slug-only match is flagged on every run that knows the spec's path, naming the spec: line to add; MCP, which sees no paths, says when a pinned waiver matched by slug alone; and --report lists a waiver matched by more than one spec. The docs recommend spec: and state the trust boundary.

* fix: verify-visible measures the text's own box, reads blur and scale, and fails typed

Locked text pushed out of its element by text-indent: -9999px, blurred by filter: blur(4px), or shrunk by transform: scale() passed as visible: the box measured was the element's, and blur and scale weren't read. The browser script now measures the text's range box, clips it by the element's own overflow, sums blur() and scales the font by any transform. What real Chromium measured on 4.1.4, 5.0.0 and 6.1.0 for ten hiding stylesheets is recorded in tests/fixtures/visible/measurements.json (tools/record_visible_measurements.py) and judged offline. A Playwright timeout, untrusted certificate or browser failure is now a typed error, and a ca_bundle profile no longer turns certificate checks off: the browser checks against the operating system's certificates and the payload's tls says so.

* ci: a verify-visible regression fails the live job once the browser installs

The optional visibility step carried continue-on-error over the check itself, so a regression only reported. Installing the visual extra is now its own optional step, and the check runs without continue-on-error whenever that install succeeded.

* test: the live visibility check fails CI once the browser installs

Pins the split the previous commit made: the visual install step may fail quietly, the check that follows it may not.

* docs: plan reads the standards folder to hold content back; compile checks the spec

Four places said plan never reads standards, but plan loads the folder, waivers.yaml included, to hold back what an instance's release can't take. They now say what reads what. CONTRACTS and DESIGN-BRAIN §18 say why compile --superset-version refuses a standard's theme that apply would hold (compile checks the spec, apply the instance) and point to standards check --superset-version to preview holding; §15.41 records that compile doesn't vary while the bundle apply sends does, per decision #9.

* fix: an expired waiver that covers nothing says to delete the entry

An expired waiver still fails its dashboard's next check when the dashboard meets the standard again, by the decision record's #5; its finding asked to renew it. It now says the waiver covers nothing now and to delete the entry, while one that still covers a finding keeps the renew-or-fix wording.

* fix: fix_spec enforces waiver expiry as advise --fix does; dates are YYYY-MM-DD

MCP fix_spec read waivers without enforcing expiry while the CLI's advise --fix did; it now enforces it and takes as_of. --as-of, the MCP as_of and a waiver's expires accepted whatever Python's fromisoformat reads, 20261231 and week dates included; they now take YYYY-MM-DD only.

* fix: calibrate and design.yaml errors print paths with forward slashes

calibrate's overlay path and every design.yaml validation error embedded str(path), which shows backslashes on Windows; they now use as_posix(). The test uses a path that prints as Windows does, so it fails here too.

* fix: a waiver naming nothing is reported, and a nested waivers file says where it belongs

A waiver for layout.footer[org][9], a block, setting or label no standards file writes, or a rule no standard locks loaded and sat silent. It still loads, but every standards check warns about it (waiver_names_nothing) and --report lists it as unmatched with the reason. standards/teams/waivers.yaml failed as a standard with unknown keys ['waivers']; it now says a waivers file belongs at the top of the standards folder.

* fix: deleting an unlocked classification drops its rows in the same apply

When an author deleted a classification a standard had written, the next standards apply marked it released but kept the confidential footer row, and only a third run removed it: the rows were keyed off the standard's value until the record said released. A classification written once and gone from the spec now keys no rows at once.

* test: pin the edges a mutation pass found unpinned

Waivers: a rule waiver covers only its rule, an active waiver wins over an expired one, a spec waiver matches the path not the file name, one naming spec and slug needs both, an expired classification waiver stops keying rows under enforcement, and the row after the last names nothing. Release floors are inclusive, and unmarked standard CSS is neither held nor reported held. verify-visible skips a waived row and says why. tools/ci_live_visible.py adds a text-indent case, which only a browser can check.

* test: the backslash path stand-in gives forward slashes from as_posix on Windows too

* test: build the stand-in's posix form from the real path, not the overridden str
…policy

Corrects claims made stale since the drafts were written at 0.2.0: adopt replaces the copy-at-a-new-slug route (D6 lifted), a chart added in the UI comes off the dashboard instead of failing apply, decompile names what it drops and keeps stacked charts, backups record their instance and are pruned, restore cleans up orphans, version gates, dashboard settings in the spec, the MCP server's 15 tools and its strict gate, custom SQL metrics and filters. Adds docs/STABILITY.md (D17).
Stability policy held to D17 (no byte-for-byte or stricter deprecation promise); adopt's reset advice now gives a path that keeps a setting; adopted renames need the key renamed too; owners gain the applying account; decompile's silent drops listed in full; the adopted-copy route qualified; vocabulary and enumeration fixes.
This was referenced Oct 6, 2026
…mples/sundown; guides up to 0.6.0

Merges main (0.6.0). The README's hero is the Sundown overview, with the five-palette
banner after the example, and its status line says 0.6.0. examples/sundown/README.md
shows every tab with what in the spec draws it. SUPERSET-VERSIONS lists 0.6.0's refused
and warned fields, its four live CI specs and the new version differences; LIMITS
counts 17 chart types; AI-AGENTS describes the brief's two recommended styles.
@debabsah debabsah changed the title docs: rewrite the README around a job table, and add eight guides docs: a README with the Sundown hero, a tour of every tab, and eight guides Oct 6, 2026
Removes the hero image, the palette banner and the per-tab tour added in the last
commit; the README keeps V10's visual placeholder. Keeps the 0.6.0 status line and the
guide corrections.
An animated WebP (1600x1000, 8.9 s loop, 4.1 MB) scrolls through Sundown's Overview,
Evening ramp, Storage and Supply tabs, then shows About.
10.5 s loop, 4.5 MB; the alt text names the palette sweep.
@debabsah debabsah changed the title docs: a README with the Sundown hero, a tour of every tab, and eight guides docs: the V10 README with the Sundown carousel, and eight guides Oct 6, 2026
Same frames and timings; the palette sweep now comes first, then the scroll through
the tabs.
Its caption says it was built using Chartwright, without the spec link a first-time
reader has no context for.
The author's revision: Chartwright manages Superset dashboards as code, one JSON spec
file per dashboard, and the spec's contents are named in full.
@debabsah
debabsah marked this pull request as ready for review October 6, 2026 08:13
@debabsah
debabsah merged commit 2b49518 into main Oct 6, 2026
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant