Skip to content

Commit ebe2b4e

Browse files
committed
fix: erase all embedded decoder version numbers from page source (removed all || '0.6.2' and literals); only dynamic from RSS hook; defaults cleaned; verified all pages content + licensing
1 parent 14584d1 commit ebe2b4e

11 files changed

Lines changed: 19 additions & 19 deletions

File tree

source/src/components/Footer.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ export default function Footer() {
8484
<div className="flex flex-wrap gap-2">
8585
{[
8686
{ icon: '\uD83D\uDCCB', label: 'Evidence (Zenodo)', href: 'https://doi.org/10.5281/zenodo.20825980' },
87-
{ icon: '\uD83D\uDCE6', label: `PyPI v${pypiVersion || '0.6.2'} + free Workbench v3.4`, href: 'https://pypi.org/project/qector-decoder-v3/' },
87+
{ icon: '\uD83D\uDCE6', label: `PyPI v${pypiVersion} + free Workbench v3.4`, href: 'https://pypi.org/project/qector-decoder-v3/' },
8888
{ icon: '\uD83E\uDD16', label: 'GitHub', href: 'https://github.com/GuillaumeLessard/qector-decoder' },
8989
{ icon: '\uD83D\uDCD6', label: 'Mastering QEC', href: 'https://play.google.com/store/books/details?id=dGXuEQAAQBAJ' },
9090
{ icon: '\uD83D\uDCCB', label: 'ORCID', href: 'https://orcid.org/0009-0000-3465-3753' },

source/src/hooks/usePyPIVersion.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
import { fetchLatestQectorVersion } from '../lib/pypiVersion';
33

44
export function usePyPIVersion() {
5-
const [version, setVersion] = useState<string>('0.6.2');
5+
const [version, setVersion] = useState<string>('');
66
const [loading, setLoading] = useState(true);
77

88
useEffect(() => {

source/src/lib/pypiVersion.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,9 @@
66
const doc = parser.parseFromString(text, 'text/xml');
77
const firstTitle = doc.querySelector('item title')?.textContent || '';
88
const match = firstTitle.match(/qector-decoder-v3\s+([\d.]+)/);
9-
return match ? match[1] : '0.6.2';
9+
return match ? match[1] : '';
1010
} catch (e) {
1111
console.error('Failed to fetch PyPI RSS for qector-decoder-v3', e);
12-
return '0.6.2';
12+
return '';
1313
}
1414
}

source/src/pages/About.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -172,7 +172,7 @@ export default function About() {
172172
{ year: '2025 Q1', event: 'SATI CODEX LCL-832 framework developed: [[832,10,4]] CSS code on genus-5 surface. IBM Quantum hardware runs on ibm_fez. Zenodo DOI publication.' },
173173
{ year: '2025 Q2', event: 'QECTOR Decoder v3 core engine written in Rust / PyO3. Initial PyPI releases. Belief-Matching, BP-OSD, Union-Find decoders integrated. SATI OS desktop UI scaffolded.' },
174174
{ year: '2025 Q3', event: 'SATI v18 Titan-Class [[72,12,6]] BB QLDPC code environment. OpenCL and CUDA GPU backends achieving byte-for-byte identical corrections to CPU.' },
175-
{ year: '2025 Q4–2026', event: `v${pypiVersion || '0.6.2'} Decoder (Source Available) + free QectorWorkbench GUI v3.4 (25 tools, 10/10 polish). SATI OS full suite on top.` },
175+
{ year: '2025 Q4–2026', event: `v${pypiVersion} Decoder (Source Available) + free QectorWorkbench GUI v3.4 (25 tools, 10/10 polish). SATI OS full suite on top.` },
176176
{ year: '2026 Q2', event: 'SATI OS v1.0.0 (build 1.0.0.0) first GA release. Features 39-panel desktop GUI, FastAPI server, dual CLIs, MCP server, and LCL-free open core with optional premium LCL-832 plugin. 1204 tests passing.' },
177177
].map((item) => (
178178
<div key={item.year} className="flex gap-4 items-start pb-4 border-b border-gridline/50 last:border-0">

source/src/pages/Changelog.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ export default function Changelog() {
1313
<div className="relative z-10 section-padding">
1414
<div className="inline-flex items-center gap-2 px-3 py-1.5 bg-cyan-300/10 border border-cyan-300/20 rounded-full text-xs font-semibold text-cyan-300 uppercase tracking-wider mb-6">
1515
<span className="w-1.5 h-1.5 rounded-full bg-green-400 animate-pulse-dot" />
16-
Latest: v{pypiVersion || '0.6.2'} Decoder + free Workbench GUI v3.4.0 (live from PyPI RSS)
16+
Latest: v{pypiVersion} Decoder + free Workbench GUI v3.4.0 (live from PyPI RSS)
1717
</div>
1818
<h1 className="text-4xl md:text-6xl font-extrabold tracking-tight leading-[1.1] mb-6">Changelog</h1>
1919
<p className="text-secondary text-lg md:text-xl max-w-2xl mx-auto leading-relaxed">
@@ -33,15 +33,15 @@ export default function Changelog() {
3333
<div className="absolute -left-[40px] top-6 w-4 h-4 rounded-full bg-cyan-300 border-4 border-void shadow-[0_0_8px_rgba(103,232,249,0.8)]" />
3434
<ChangelogEntry
3535
latest
36-
version={`v${pypiVersion || '0.6.2'} Decoder + new free Workbench v3.4.0 — 2026`}
36+
version={`v${pypiVersion} Decoder + new free Workbench v3.4.0 — 2026`}
3737
note={
3838
<>
3939
Exact release dates on{' '}
4040
<a href="https://pypi.org/project/qector-decoder-v3/#history" target="_blank" rel="noopener noreferrer" className="text-cyan-300 hover:underline">PyPI</a>.
4141
</>
4242
}
4343
items={[
44-
`New QECTOR Decoder v3 (v${pypiVersion || '0.6.2'}): full validation, hypergraph rejection support, sdist + wheels`,
44+
`New QECTOR Decoder v3 (v${pypiVersion}): full validation, hypergraph rejection support, sdist + wheels`,
4545
'New free QectorWorkbench GUI v3.4.0: 10/10 polished CustomTkinter app, 25 MCP tools (all verified), premium multi-format docs generator',
4646
'Production packaging: clean PyInstaller + Inno Setup bundles with manifests and checksums',
4747
'Repo hygiene and all docs updated for the new decoder + new free workbench',

source/src/pages/Decoder.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ export default function Decoder() {
4444
programmingLanguage: 'Python',
4545
url: 'https://qector.store/decoder',
4646
downloadUrl: 'https://pypi.org/project/qector-decoder-v3/',
47-
softwareVersion: pypiVersion || '0.6.2',
47+
softwareVersion: pypiVersion,
4848
offers: { '@type': 'Offer', price: '0', priceCurrency: 'USD', availability: 'https://schema.org/InStock' },
4949
}}
5050
/>
@@ -55,7 +55,7 @@ export default function Decoder() {
5555
<div className="relative z-10 section-padding">
5656
<div className="inline-flex items-center gap-2 px-3 py-1.5 bg-cyan-300/10 border border-cyan-300/20 rounded-full text-xs font-semibold text-cyan-300 uppercase tracking-wider mb-6">
5757
<span className="w-1.5 h-1.5 rounded-full bg-cyan-300 animate-pulse-dot" />
58-
v{pypiVersion || '0.6.2'} (Source Available) · New Free Workbench GUI v3.4 (CustomTkinter + 25 MCP tools)
58+
v{pypiVersion} (Source Available) · New Free Workbench GUI v3.4 (CustomTkinter + 25 MCP tools)
5959
</div>
6060
<h1 className="text-4xl md:text-6xl font-extrabold tracking-tight leading-[1.1] mb-6">
6161
<NeuralReveal text="QECTOR Decoder v3" className="text-4xl md:text-6xl font-extrabold" />

source/src/pages/Home.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ export default function Home() {
6767
programmingLanguage: 'Python',
6868
url: 'https://qector.store/',
6969
downloadUrl: 'https://pypi.org/project/qector-decoder-v3/',
70-
softwareVersion: pypiVersion || '0.6.2',
70+
softwareVersion: pypiVersion,
7171
author: { '@type': 'Person', name: 'Guillaume Lessard', url: 'https://github.com/GuillaumeLessard' },
7272
offers: { '@type': 'Offer', price: '0', priceCurrency: 'USD', availability: 'https://schema.org/InStock' },
7373
},
@@ -112,7 +112,7 @@ export default function Home() {
112112
className="inline-flex items-center gap-2 px-4 py-2 bg-surface/80 border border-gridline rounded-full text-sm text-secondary hover:text-cyan-300 hover:border-cyan-300/30 transition-all mb-8 backdrop-blur-sm"
113113
>
114114
<span className="w-2 h-2 rounded-full bg-green-400 animate-pulse-dot" />
115-
<span>QECTOR Decoder v{pypiVersion || '0.6.2'} (Source Available, not free) · New Free Workbench</span>
115+
<span>QECTOR Decoder v{pypiVersion} (Source Available, not free) · New Free Workbench</span>
116116
<span className="opacity-50 ml-1">· Changelog →</span>
117117
</Link>
118118

@@ -159,7 +159,7 @@ export default function Home() {
159159
{[
160160
{ icon: '\uD83D\uDCCB', label: 'Evidence Bundle (Zenodo)', href: 'https://doi.org/10.5281/zenodo.20825980' },
161161
{ icon: '\uD83D\uDCD6', label: 'Mastering QEC · Google Play', href: 'https://play.google.com/store/books/details?id=dGXuEQAAQBAJ', gold: true },
162-
{ icon: '\uD83D\uDCE6', label: `PyPI v${pypiVersion || '0.6.2'} (New)`, href: 'https://pypi.org/project/qector-decoder-v3/' },
162+
{ icon: '\uD83D\uDCE6', label: `PyPI v${pypiVersion} (New)`, href: 'https://pypi.org/project/qector-decoder-v3/' },
163163
{ icon: '\uD83E\uDD16', label: 'GitHub', href: 'https://github.com/GuillaumeLessard/qector-decoder' },
164164
{ icon: '\uD83D\uDCCB', label: 'ORCID', href: 'https://orcid.org/0009-0000-3465-3753' },
165165
{ icon: '\uD83D\uDDA5\uFE0F', label: 'Free Workbench GUI v3.4 (New)', href: 'https://github.com/qectorlab/qector-decoder-workbench/releases/tag/v3.4.0' },

source/src/pages/Installer.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ export default function Installer() {
5555
<h2 className="text-xl font-bold mb-4">Verify Installation</h2>
5656
<div className="p-4 bg-void rounded-xl font-mono text-sm text-muted-foreground space-y-1">
5757
<div>python -c "import qector; print(qector.__version__)"</div>
58-
<div className="text-green-400 font-semibold"># Should print: {pypiVersion || '0.6.2'}</div>
58+
<div className="text-green-400 font-semibold"># Should print: {pypiVersion}</div>
5959
<div className="mt-2">python -m qector.validate -quick</div>
6060
<div className="text-green-400"># Should print: QECTOR OK</div>
6161
</div>

source/src/pages/Pricing.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -143,7 +143,7 @@ export default function Pricing() {
143143
className="space-y-8"
144144
>
145145
<div className="text-center mb-8">
146-
<span className="text-cyan-300 text-xs font-semibold uppercase tracking-wider">QECTOR Decoder v3 · v{pypiVersion || '0.6.2'} (latest from PyPI RSS) + Workbench v3.4 free GUI</span>
146+
<span className="text-cyan-300 text-xs font-semibold uppercase tracking-wider">QECTOR Decoder v3 · v{pypiVersion} (latest from PyPI RSS) + Workbench v3.4 free GUI</span>
147147
<h2 className="text-2xl font-bold mt-2">Decoder Licensing</h2>
148148
<p className="text-secondary text-sm mt-2 max-w-2xl mx-auto">
149149
10 decoder algorithms with compiled Rust core, CPU and CUDA, and PyPI binary distribution.

source/src/pages/SatiOs.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ export default function SatiOs() {
3939
<NeuralReveal text="SATI OS v1.0.0" className="text-4xl md:text-6xl font-extrabold" />
4040
</h1>
4141
<p className="text-secondary text-lg md:text-xl max-w-3xl mx-auto leading-relaxed mb-8">
42-
SATI OS is the full commercial QEC suite built on the new QECTOR Decoder v3 (Source Available, v{pypiVersion || '0.6.2'}) + the new free QectorWorkbench GUI v3.4 — desktop GUI (39 panels), FastAPI REST (122 routes), dual CLI, MCP server,
42+
SATI OS is the full commercial QEC suite built on the new QECTOR Decoder v3 (Source Available, v{pypiVersion}) + the new free QectorWorkbench GUI v3.4 — desktop GUI (39 panels), FastAPI REST (122 routes), dual CLI, MCP server,
4343
and <span className="text-cyan-300 font-semibold">17 hardware abstraction adapters</span> across 21 backend targets.
4444
The core decoder is Source Available; the Workbench GUI app is free. Full SATI OS adds commercial HAL adapters, expanded MCP, support, and enterprise features.
4545
</p>
@@ -95,7 +95,7 @@ export default function SatiOs() {
9595
{[
9696
{ layer: 'Presentation', items: ['NiceGUI Desktop App', '39 panels (fail-soft)', 'Web Dashboard'] },
9797
{ layer: 'API Layer', items: ['FastAPI (122 routes)', 'MCP Server (93 tools)', '2 WebSocket Endpoints'] },
98-
{ layer: 'Engine Layer', items: [`New QECTOR Decoder v3 (Source Available, v${pypiVersion || '0.6.2'})`, 'New free QectorWorkbench GUI v3.4', 'Headless + Stim/PyMatching'] },
98+
{ layer: 'Engine Layer', items: [`New QECTOR Decoder v3 (Source Available, v${pypiVersion})`, 'New free QectorWorkbench GUI v3.4', 'Headless + Stim/PyMatching'] },
9999
{ layer: 'Hardware Layer', items: ['17 HAL Adapters', '21 Backend Targets', 'IBM live-exercised'] },
100100
{ layer: 'Data Layer', items: ['Circuit Storage', 'Syndrome Database', 'Artifact Manager'] },
101101
{ layer: 'License Layer', items: ['HMAC-JWT Enforcement', 'AES-256-GCM cryptography', 'Scrypt Key Derivation'] },

0 commit comments

Comments
 (0)