docs: redesign the README and GitHub presence for 1.2.0 - #2
Merged
Merged
Conversation
Twenty-six audits, designs, decision records and plans sat at the repository root, so GitHub listed them ahead of the README. They move, unchanged, to docs/design/ (git mv keeps their history), and docs/design/README.md indexes them by area: templates, country flags, panel compatibility, installer, documentation platform. The index says plainly that these are historical records: their own "Status" lines describe the project when they were written, and several marked "proposal only" have since been implemented. Nothing reads these files. The six code and test files that mention them do so in comments, by bare file name, so the names are kept as they were and no code changes. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011QC3E9ChkFK7sDFBTfwNJ3
The Starlight site under docs/ built but was published nowhere: no site URL, no deployment, and nothing linked to it. - .github/workflows/docs.yml builds the site on pull requests that touch docs/ and deploys it from main (push or manual run) with actions/deploy-pages. Least privilege: contents: read, and pages / id-token write only on the deploy job, which runs only on main. One-time setup: Settings -> Pages -> Source: GitHub Actions. - A project site is served under /Row-Template/, so astro.config.mjs sets site and base. Content keeps its root-relative links (/installation/, /fa/branding/): plugins/base-links.mjs, a dependency-free Satteri mdast plugin, adds the base at build time, and the two preview components prefix import.meta.env.BASE_URL. Moving the site later only means changing `base`. - @astrojs/markdown-satteri is declared at 0.4.1, the exact version astro 7.3.3 already pins and installs; the lockfile gains one line. - public/favicon.svg: every page linked /favicon.svg, which never existed (a 404 on each page load, also on main). It redraws the banner's mark in the site's accent colour. - Starlight gets the repository's GitHub link and "Edit page" links. - docs/README.md: documents publishing and the base-link rule, points at design/ for the ADR it cited at the old root path, and replaces a `brand/` directory that never existed with the real layout. Checked: npm ci and npm run build pass (37 pages, as before; the 36 Vite MODULE_LEVEL_DIRECTIVE warnings are identical on main). Every one of the 1,072 internal href/src/srcset URLs in the build resolves under /Row-Template/ to a built file. actionlint passes. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011QC3E9ChkFK7sDFBTfwNJ3
CHANGELOG.md gains a [1.2.0] - Unreleased entry covering the 48 commits since v1.1.0, each item checked against the code: - Added: the fifteen designs and how to choose one (install chooser, RT_TEMPLATE, Reconfigure -> Template; kept across updates); per-design checksums that `row-template verify` checks; CSS-drawn flags for DE, FR, NL, JP, SE and US (Windows + Chromium shows the letters instead); the documentation site; panel shells packaged for research, which the installer does not place. - Changed: panel database detection now fails closed on a file that is not SQLite (1.1.0 took the first file found); live refresh ignores a response without the page's own fields; the country-code table is a bitmap. - Internal: the multi-panel groundwork, which no row-template command calls yet; backups and rollback keep the 1.1.0 format. Deliberately left out until they can be verified: an upgrade-from-1.1.0 statement and a "validated against" 3X-UI version. PROVENANCE.md described the tarball as template, VERSION, install.sh, lib/ and bin/. It now lists what tools/make-release.sh actually packs, checked against an extracted build: template.html, templates/<id>/ and shells/<panel>/<id>/ with their checksum sidecars, and the inner SHA256SUMS. Rebuilding a release now needs Node.js to build the designs. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011QC3E9ChkFK7sDFBTfwNJ3
- CODE_OF_CONDUCT.md: Contributor Covenant 2.1. Reports go through GitHub's "Report content" to the maintainers, matching SECURITY.md's use of GitHub's private channels; no email address is published. - .github/pull_request_template.md: a checklist built from the repository's real commands (npm test, verify, build, lint:sh, the docs build), the no-secrets rule, the changelog, and README translation parity. - .github/FUNDING.yml: the NOWPayments link the README already lists, so GitHub shows a Sponsor button. - CONTRIBUTING.md: links the code of conduct and the PR checklist, and adds how translations work (the build rejects a locale catalogue whose keys differ from English), where designs live and the contract a new one must meet, how to work on and publish the docs site, and where the design records are. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011QC3E9ChkFK7sDFBTfwNJ3
The README described 1.1.0 and made claims the code contradicts. It is rebuilt around what Row-Template 1.2.0 does, every claim checked against the code: - Hero with a Documentation badge and quick links; a "What it is" section; Features grouped for subscribers, for operators, and privacy and safety. - Designs: a gallery of the fifteen designs from the existing preview captures in docs/public/previews/, and the three ways to choose one (install chooser, RT_TEMPLATE, Reconfigure branding -> Template). - Supported panels: 3X-UI supported; PasarGuard and Rebecca marked research with no installation path, as the docs site already says. Marzban and Marzneshin, which nothing in the repository mentions, are removed. - Architecture: a Mermaid diagram of build -> release -> install -> subThemeDir -> render, and a repository layout table. - Installation, Usage, Development, Testing, Roadmap (documented direction only), Contributing, Security, Support, License. Corrected claims: - "never touches your panel's own files": activation writes the panel's subThemeDir setting. It now says that is the only panel setting it changes (the only settings key any shell code writes), and that automatic activation briefly stops and restarts the panel. - Uninstall "does not touch ... its database": it clears subThemeDir when it points at Row-Template. Now stated as such. - `version` shows the installed, minimum-supported and detected 3X-UI versions, as `row-template help` says. - The license section now also names the embedded Vazirmatn font subset (SIL OFL, src/fonts/OFL.txt). README.fa.md, README.ar.md, README.ru.md and README.zh-CN.md follow the same structure. Code blocks, the diagram, commands, paths, URLs and wallet addresses are byte-identical to English; unchanged passages (the OS note, the secrets warning, security, support) reuse the existing translations verbatim; documentation links go to the Persian and Arabic site locales where they exist. No invisible characters, as before. Native-speaker review of the new passages is recommended. Checked: for all five, code blocks, inline code, URLs, images, heading structure and table rows match English, relative links resolve, the Mermaid diagram parses and renders, and every in-page anchor resolves. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011QC3E9ChkFK7sDFBTfwNJ3
The manager's main menu item is "Reconfigure branding", and Template is entry 4 of its submenu; the 1.2.0 entry said "Reconfigure -> Template". Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011QC3E9ChkFK7sDFBTfwNJ3
12 tasks
Follows #3, which ships lib/transaction.sh and panels/ in the release and lets an install that 1.1.0's updater left incomplete be completed: - CHANGELOG 1.2.0, Compatibility: updating from 1.1.0 takes two runs of `row-template update`. The first is 1.1.0's own updater, which copies only the library and the command; the second, by 1.2.0, installs every design and the remaining installer files. `verify` reports whether the second run is needed. (This statement was held back until it could be verified; #3's upgrade test drives exactly this path with the real v1.1.0 updater.) - CHANGELOG 1.2.0, Internal: the release ships the companions, and an incomplete payload is refused. - PROVENANCE.md: the payload table gains panels/. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011QC3E9ChkFK7sDFBTfwNJ3
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What this changes
Documentation, the docs deployment and community files only. No application code, installer behaviour or
VERSIONchanges:git diff main -- src installer tools tests template VERSION package.jsonis empty.Important
Merge #3 first, and don't publish 1.2.0 without it. While preparing this I found a release blocker in the packaging: a release built from
maincould not be installed, and updating from 1.1.0 leftrow-templateunable to start. #3 fixes it and tests both paths against the real tarball and the real v1.1.0 updater. Merge this PR when 1.2.0 is published, since the README describes 1.2.0.README (all five languages)
subThemeDir). It's the only setting any shell code writes, and automatic activation briefly stops and restarts the panel.subThemeDirwhen it points at Row-Template.versionshows the installed, minimum-supported and detected 3X-UI versions.Docs site: GitHub Pages (
.github/workflows/docs.yml)docs/and deploys frommainonly. Minimal permissions:pages/id-tokenwrite only on the deploy job.siteandbaseare/Row-Template/. Content keeps its root-relative links;docs/plugins/base-links.mjs(a small plugin with no dependencies) adds the base at build time, and the preview components useBASE_URL.@astrojs/markdown-satteri@0.4.1is now declared explicitly. It's the exact version Astro 7.3.3 already pins and installs, and the lockfile gains one line.favicon.svgevery page already linked (a 404 onmaintoo), plus the GitHub link and "Edit page" links.Other files
docs/design/: the 26 planning and audit documents move here from the repo root (git mv, history kept), with an index grouped by area. Nothing reads them; code comments cite them by bare file name, and those names are unchanged.CHANGELOG.md: a[1.2.0] - Unreleasedentry covering the 48 commits since v1.1.0, each line checked against the code. It includes the two-step upgrade from 1.1.0, which fix(release): ship the installer's companions so 1.2.0 installs and upgrades from 1.1.0 #3 makes possible and tests.PROVENANCE.md: now lists the actual tarball contents (templates/,shells/,panels/, checksums).CONTRIBUTING.md: adds translations, designs, the docs site and design records.CODE_OF_CONDUCT.md(Contributor Covenant 2.1, reports via GitHub "Report content"),.github/pull_request_template.md, and.github/FUNDING.yml(the NOWPayments link).Settings only you can change
https://iitzseridev.github.io/Row-Template/.Self-contained, white-label subscription page for 3X-UI panels: 15 designs, each one HTML file, no CDNs or external requests, 5 languages, checksum-verified installer with rollback.(It currently has a trailing space.)pasarguard,rebeccaandautomation.3x-ui,subscription,subscription-templateandtemplate.xray,subscription-page,white-label,self-hosted,i18n,rtlandqr-code.docs/assets/row-template-banner.png(2560×1280, 311 KB).Draft release notes for v1.2.0
Add the artifact's SHA-256 and a "validated against" 3X-UI version once they're known. The validation claim is still left out because I can't verify it.
How it was checked
npm test: 639/639 passnpm run verifypassesnpm run buildleaves the tree clean (no source changed)npm run lint:sh: 9 scripts cleancd docs && npm ci && npm run build: 37 pages, the same asmain. The 36 ViteMODULE_LEVEL_DIRECTIVEwarnings are identical onmain.href/src/srcsetURLs resolve under/Row-Template/(0 problems;mainhad 37, the favicon)actionlintpasses on the workflowdata:,, is example text inside inline code in a historical document.Before you submit
subId, UUIDs, credentials, tokens, keys or real server addressesCHANGELOG.mdunder 1.2.0🤖 Generated with Claude Code
https://claude.ai/code/session_011QC3E9ChkFK7sDFBTfwNJ3