EU Parliament Monitor v0.9.21
What's Changed
- [aw] Upgrade available @github-actions[bot] (#2116)
🌍 EU Parliament Integration
- build(deps)(deps): bump european-parliament-mcp-server from 1.3.9 to 1.3.10 in the production-dependencies group across 1 directory @dependabot[bot] (#2114)
- Enrich JSON-LD across all HTML surfaces; add offline.html structured data + carousel-shape contract tests @copilot-swe-agent[bot] (#2125)
- Use canonical GitHub blob URLs for article source Markdown links @copilot-swe-agent[bot] (#2127)
- [news] Week Ahead — 2026-05-22 @pethers (#2124)
- [news] Breaking — 2026-05-22 @pethers (#2123)
- [news] EU Parliament motions update for 2026-05-22 @pethers (#2122)
- [news] propositions — 2026-05-22 (run propositions-run261-1779431162) @pethers (#2120)
- [news] Committee Reports — 2026-05-22 @pethers (#2118)
- [news] breaking — 2026-05-22 (run breaking-run264-1779413941) (analysis-only) @pethers (#2111)
- [news] Translate executive briefs (15 files) for 2026-05-22 @pethers (#2110)
- Trim 🚫 Never sections to terse positive rules across agentic workflows @copilot-swe-agent[bot] (#2107)
- [news] breaking — 2026-05-21 (run breaking-run261-1779392184) @pethers (#2109)
- [news] Breaking — 2026-05-21 @pethers (#2104)
🌐 Multi-language Support
- [news] feat(translations): 20 executive-brief translations — 2026-05-22 & 2026-04-04 breaking briefs @github-actions[bot] (#2119)
- [news] Translate executive briefs — 2026-05-21 (partial: week-ahead complete + election-cycle fi) @github-actions[bot] (#2108)
- [news] Translate executive briefs — 2026-05-21 (2/2 briefs) @github-actions[bot] (#2103)
🎨 UI/UX Improvements
- Enrich JSON-LD across all HTML surfaces; add offline.html structured data + carousel-shape contract tests @copilot-swe-agent[bot] (#2125)
- Use canonical GitHub blob URLs for article source Markdown links @copilot-swe-agent[bot] (#2127)
- [news] Week Ahead — 2026-05-22 @pethers (#2124)
- [news] Breaking — 2026-05-22 @pethers (#2123)
- [news] propositions — 2026-05-22 (run propositions-run261-1779431162) @pethers (#2120)
- [news] Committee Reports — 2026-05-22 @pethers (#2118)
- [news] Translate executive briefs (15 files) for 2026-05-22 @pethers (#2110)
- Trim 🚫 Never sections to terse positive rules across agentic workflows @copilot-swe-agent[bot] (#2107)
- [news] breaking — 2026-05-21 (run breaking-run261-1779392184) @pethers (#2109)
- [news] Breaking — 2026-05-21 @pethers (#2104)
🏗️ Infrastructure & Performance
- build(deps)(deps): bump european-parliament-mcp-server from 1.3.9 to 1.3.10 in the production-dependencies group across 1 directory @dependabot[bot] (#2114)
- Enrich JSON-LD across all HTML surfaces; add offline.html structured data + carousel-shape contract tests @copilot-swe-agent[bot] (#2125)
- build(deps)(deps): bump the github-actions group with 2 updates @dependabot[bot] (#2129)
- build(deps-dev)(deps-dev): bump knip from 6.14.1 to 6.14.2 in the development-dependencies group @dependabot[bot] (#2128)
- Use canonical GitHub blob URLs for article source Markdown links @copilot-swe-agent[bot] (#2127)
- build(deps)(deps): bump the github-actions group across 1 directory with 2 updates @dependabot[bot] (#2117)
- [news] Week Ahead — 2026-05-22 @pethers (#2124)
- [news] Breaking — 2026-05-22 @pethers (#2123)
- [news] EU Parliament motions update for 2026-05-22 @pethers (#2122)
- [news] Translate executive briefs (26 files) for 2026-05-22 @pethers (#2121)
- [news] propositions — 2026-05-22 (run propositions-run261-1779431162) @pethers (#2120)
- [news] Committee Reports — 2026-05-22 @pethers (#2118)
- fix(news-translate): drop misleading BRANCH var and ban manual git ops @copilot-swe-agent[bot] (#2112)
- build(deps-dev)(deps-dev): bump terser from 5.47.1 to 5.48.0 in the development-dependencies group @dependabot[bot] (#2113)
- [news] breaking — 2026-05-22 (run breaking-run264-1779413941) (analysis-only) @pethers (#2111)
- Trim 🚫 Never sections to terse positive rules across agentic workflows @copilot-swe-agent[bot] (#2107)
- [news] breaking — 2026-05-21 (run breaking-run261-1779392184) @pethers (#2109)
- Wire workflow_dispatch parameters end-to-end; drop dead
force_generation; declaremax_source_lines@copilot-swe-agent[bot] (#2102) - [news] Breaking — 2026-05-21 @pethers (#2104)
🔄 Code Quality & Refactoring
- build(deps)(deps): bump european-parliament-mcp-server from 1.3.9 to 1.3.10 in the production-dependencies group across 1 directory @dependabot[bot] (#2114)
- Enrich JSON-LD across all HTML surfaces; add offline.html structured data + carousel-shape contract tests @copilot-swe-agent[bot] (#2125)
- Use canonical GitHub blob URLs for article source Markdown links @copilot-swe-agent[bot] (#2127)
- fix(news-translate): drop misleading BRANCH var and ban manual git ops @copilot-swe-agent[bot] (#2112)
- Trim 🚫 Never sections to terse positive rules across agentic workflows @copilot-swe-agent[bot] (#2107)
- Wire workflow_dispatch parameters end-to-end; drop dead
force_generation; declaremax_source_lines@copilot-swe-agent[bot] (#2102)
🔒 Security & Compliance
- build(deps)(deps): bump the github-actions group with 2 updates @dependabot[bot] (#2129)
- build(deps)(deps): bump the github-actions group across 1 directory with 2 updates @dependabot[bot] (#2117)
📝 Documentation
- build(deps)(deps): bump european-parliament-mcp-server from 1.3.9 to 1.3.10 in the production-dependencies group across 1 directory @dependabot[bot] (#2114)
- Enrich JSON-LD across all HTML surfaces; add offline.html structured data + carousel-shape contract tests @copilot-swe-agent[bot] (#2125)
- [news] Translate executive briefs (26 files) for 2026-05-22 @pethers (#2126)
- [news] Week Ahead — 2026-05-22 @pethers (#2124)
- [news] Breaking — 2026-05-22 @pethers (#2123)
- [news] EU Parliament motions update for 2026-05-22 @pethers (#2122)
- [news] Translate executive briefs (26 files) for 2026-05-22 @pethers (#2121)
- [news] propositions — 2026-05-22 (run propositions-run261-1779431162) @pethers (#2120)
- [news] Committee Reports — 2026-05-22 @pethers (#2118)
- fix(news-translate): drop misleading BRANCH var and ban manual git ops @copilot-swe-agent[bot] (#2112)
- [news] breaking — 2026-05-22 (run breaking-run264-1779413941) (analysis-only) @pethers (#2111)
- [news] Translate executive briefs (15 files) for 2026-05-22 @pethers (#2110)
- Trim 🚫 Never sections to terse positive rules across agentic workflows @copilot-swe-agent[bot] (#2107)
- [news] breaking — 2026-05-21 (run breaking-run261-1779392184) @pethers (#2109)
- [news] Translate executive briefs (13 files) for 2026-05-21 @pethers (#2106)
- Wire workflow_dispatch parameters end-to-end; drop dead
force_generation; declaremax_source_lines@copilot-swe-agent[bot] (#2102) - [news] Breaking — 2026-05-21 @pethers (#2104)
📦 Dependencies
- build(deps)(deps): bump european-parliament-mcp-server from 1.3.9 to 1.3.10 in the production-dependencies group across 1 directory @dependabot[bot] (#2114)
- build(deps)(deps): bump the github-actions group with 2 updates @dependabot[bot] (#2129)
- build(deps-dev)(deps-dev): bump knip from 6.14.1 to 6.14.2 in the development-dependencies group @dependabot[bot] (#2128)
- build(deps)(deps): bump the github-actions group across 1 directory with 2 updates @dependabot[bot] (#2117)
- fix(news-translate): drop misleading BRANCH var and ban manual git ops @copilot-swe-agent[bot] (#2112)
- build(deps-dev)(deps-dev): bump terser from 5.47.1 to 5.48.0 in the development-dependencies group @dependabot[bot] (#2113)
- Trim 🚫 Never sections to terse positive rules across agentic workflows @copilot-swe-agent[bot] (#2107)
- Wire workflow_dispatch parameters end-to-end; drop dead
force_generation; declaremax_source_lines@copilot-swe-agent[bot] (#2102)
🧪 Test Coverage Improvements
- build(deps)(deps): bump european-parliament-mcp-server from 1.3.9 to 1.3.10 in the production-dependencies group across 1 directory @dependabot[bot] (#2114)
- Enrich JSON-LD across all HTML surfaces; add offline.html structured data + carousel-shape contract tests @copilot-swe-agent[bot] (#2125)
- Use canonical GitHub blob URLs for article source Markdown links @copilot-swe-agent[bot] (#2127)
- fix(news-translate): drop misleading BRANCH var and ban manual git ops @copilot-swe-agent[bot] (#2112)
- Trim 🚫 Never sections to terse positive rules across agentic workflows @copilot-swe-agent[bot] (#2107)
- Wire workflow_dispatch parameters end-to-end; drop dead
force_generation; declaremax_source_lines@copilot-swe-agent[bot] (#2102)
⚙️ Component Updates
- build(deps)(deps): bump european-parliament-mcp-server from 1.3.9 to 1.3.10 in the production-dependencies group across 1 directory @dependabot[bot] (#2114)
- Enrich JSON-LD across all HTML surfaces; add offline.html structured data + carousel-shape contract tests @copilot-swe-agent[bot] (#2125)
- build(deps)(deps): bump the github-actions group with 2 updates @dependabot[bot] (#2129)
- Use canonical GitHub blob URLs for article source Markdown links @copilot-swe-agent[bot] (#2127)
- build(deps)(deps): bump the github-actions group across 1 directory with 2 updates @dependabot[bot] (#2117)
- fix(news-translate): drop misleading BRANCH var and ban manual git ops @copilot-swe-agent[bot] (#2112)
- Trim 🚫 Never sections to terse positive rules across agentic workflows @copilot-swe-agent[bot] (#2107)
- Wire workflow_dispatch parameters end-to-end; drop dead
force_generation; declaremax_source_lines@copilot-swe-agent[bot] (#2102)
📊 Release Metrics & Evidence
All test reports, coverage metrics, and API documentation are generated during build and available in the Documentation Hub.
🏛️ Architecture & Documentation
| Document | Description |
|---|---|
| Architecture | C4 architecture models and system overview |
| Security Architecture | Security design and controls |
| Threat Model | STRIDE threat analysis |
| Data Model | Data structures and relationships |
| Flowchart | Process flows with security controls |
| State Diagram | State transitions and lifecycles |
| Mindmap | Conceptual relationships |
| SWOT Analysis | Strategic analysis |
| CRA Assessment | Cyber Resilience Act assessment |
| API Documentation | TypeDoc-generated API reference |
🔐 Security & Supply Chain Protection
This release includes:
- ✅ SLSA Build Provenance Attestations — Cryptographically signed build provenance
- ✅ Software Bill of Materials (SBOM) — Complete dependency inventory in SPDX format
- ✅ npm Provenance — Verified package publishing with attestation
- ✅ CodeQL Security Scanning — Automated vulnerability detection
- ✅ Dependency Scanning — Continuous vulnerability monitoring with Dependabot
Verify attestations:
gh attestation verify euparliamentmonitor-0.9.21.zip -R Hack23/euparliamentmonitor
npm audit signaturesBrowse attestations: View all attestations
📋 ISMS Compliance & Policies
Compliance Frameworks
EU Parliament Monitor follows Hack23 AB's comprehensive ISMS with defense-in-depth architecture and documented security controls.
📦 Release Artifacts
| Artifact | Description | Verification |
|---|---|---|
euparliamentmonitor-0.9.21.zip |
Full application package | SHA-256 checksum, SLSA attestation |
euparliamentmonitor-0.9.21.spdx.json |
SBOM (SPDX format) | SBOM attestation |
*.intoto.jsonl |
SLSA attestations | gh attestation verify |
| npm package | euparliamentmonitor |
npm audit signatures |
All artifacts are signed and attested using GitHub's SLSA Level 3 build provenance.
🚀 Deployment
- Primary: https://euparliamentmonitor.com
- Documentation: https://euparliamentmonitor.com/docs/
- API Docs: https://euparliamentmonitor.com/docs/api/
- npm: https://www.npmjs.com/package/euparliamentmonitor
🏗️ Built With
- Node.js: 25.x
- TypeScript: 6.0.x
- Chart.js: 4.5.x
- D3.js: 7.9.x
- Vitest: 4.x
- Playwright: 1.x
- European Parliament MCP Server: 1.x
👥 Contributors
@Copilot, @dependabot[bot], @github-actions[bot], @pethers, copilot-swe-agent[bot], dependabot[bot] and github-actions[bot]
Full Changelog: v0.9.20...0.9.21
📦 Release Artifacts
euparliamentmonitor-v0.9.21.zip- Full application packageeuparliamentmonitor-v0.9.21.spdx.json- SBOM (Software Bill of Materials)*.intoto.jsonl- SLSA Build Provenance Attestations
📦 npm Package
npm install euparliamentmonitor@0.9.21Published with npm provenance for supply chain security.
📚 Documentation
🔐 Security
All artifacts include SLSA Build Provenance attestations and SBOM for supply chain security.
Verify attestations using the GitHub CLI:
gh attestation verify euparliamentmonitor-v0.9.21.zip -R Hack23/euparliamentmonitor