Skip to content

EU Parliament Monitor v0.9.20

Choose a tag to compare

@github-actions github-actions released this 21 May 13:08
· 826 commits to main since this release
Immutable release. Only release title and notes can be modified.

What's Changed

🌍 EU Parliament Integration

  • fix(translate): explicit IMF fixed-token preservation for Nordic + EU-core languages; strip WEP/all-caps prose-label leak from priority-finding meta description @copilot-swe-agent[bot] (#2101)
  • [news] EU Parliament breaking update for 2026-05-21 @pethers (#2098)
  • [news] propositions — 2026-05-21 (run propositions-run268-1779344794) @pethers (#2093)
  • [news] motions — 2026-05-21 (run motions-run264-1779348036) (analysis-only) @pethers (#2094)
  • [news] committee-reports — 2026-05-21 (run committee-reports-run264-1779341641) @pethers (#2092)
  • refactor: split oversized MCP modules — ep/client.ts 462→396, connection.ts 599→400, imf/client.ts 578→383 LOC @copilot-swe-agent[bot] (#2086)

🌐 Multi-language Support

🎨 UI/UX Improvements

  • fix(translate): explicit IMF fixed-token preservation for Nordic + EU-core languages; strip WEP/all-caps prose-label leak from priority-finding meta description @copilot-swe-agent[bot] (#2101)
  • [news] propositions — 2026-05-21 (run propositions-run268-1779344794) @pethers (#2093)
  • [news] motions — 2026-05-21 (run motions-run264-1779348036) (analysis-only) @pethers (#2094)
  • [news] committee-reports — 2026-05-21 (run committee-reports-run264-1779341641) @pethers (#2092)

🏗️ Infrastructure & Performance

  • fix(translate): explicit IMF fixed-token preservation for Nordic + EU-core languages; strip WEP/all-caps prose-label leak from priority-finding meta description @copilot-swe-agent[bot] (#2101)
  • [news] EU Parliament breaking update for 2026-05-21 @pethers (#2098)
  • [news] propositions — 2026-05-21 (run propositions-run268-1779344794) @pethers (#2093)
  • [news] motions — 2026-05-21 (run motions-run264-1779348036) (analysis-only) @pethers (#2094)
  • [news] committee-reports — 2026-05-21 (run committee-reports-run264-1779341641) @pethers (#2092)
  • Follow-up D: ESLint max-lines enforcement, source-file-size drift-guard, ARCHITECTURE.md topology refresh @copilot-swe-agent[bot] (#2089)
  • refactor: split oversized MCP modules — ep/client.ts 462→396, connection.ts 599→400, imf/client.ts 578→383 LOC @copilot-swe-agent[bot] (#2086)
  • [WIP] Refactor i18n constants to reduce file size for articles @copilot-swe-agent[bot] (#2087)
  • Split artifact-highlight.ts into translated-sibling / artifact-walker / editorial-highlight modules @copilot-swe-agent[bot] (#2088)

🔄 Code Quality & Refactoring

  • fix(translate): explicit IMF fixed-token preservation for Nordic + EU-core languages; strip WEP/all-caps prose-label leak from priority-finding meta description @copilot-swe-agent[bot] (#2101)
  • Follow-up D: ESLint max-lines enforcement, source-file-size drift-guard, ARCHITECTURE.md topology refresh @copilot-swe-agent[bot] (#2089)
  • refactor: split oversized MCP modules — ep/client.ts 462→396, connection.ts 599→400, imf/client.ts 578→383 LOC @copilot-swe-agent[bot] (#2086)
  • Split artifact-highlight.ts into translated-sibling / artifact-walker / editorial-highlight modules @copilot-swe-agent[bot] (#2088)

📝 Documentation

  • fix(translate): explicit IMF fixed-token preservation for Nordic + EU-core languages; strip WEP/all-caps prose-label leak from priority-finding meta description @copilot-swe-agent[bot] (#2101)
  • [news] EU Parliament breaking update for 2026-05-21 @pethers (#2098)
  • [news] Translate executive briefs (26 files) for 2026-05-21 @pethers (#2097)
  • [news] propositions — 2026-05-21 (run propositions-run268-1779344794) @pethers (#2093)
  • [news] motions — 2026-05-21 (run motions-run264-1779348036) (analysis-only) @pethers (#2094)
  • [news] committee-reports — 2026-05-21 (run committee-reports-run264-1779341641) @pethers (#2092)
  • Follow-up D: ESLint max-lines enforcement, source-file-size drift-guard, ARCHITECTURE.md topology refresh @copilot-swe-agent[bot] (#2089)

📦 Dependencies

  • fix(translate): explicit IMF fixed-token preservation for Nordic + EU-core languages; strip WEP/all-caps prose-label leak from priority-finding meta description @copilot-swe-agent[bot] (#2101)
  • Follow-up D: ESLint max-lines enforcement, source-file-size drift-guard, ARCHITECTURE.md topology refresh @copilot-swe-agent[bot] (#2089)
  • [WIP] Refactor i18n constants to reduce file size for articles @copilot-swe-agent[bot] (#2087)

🧪 Test Coverage Improvements

  • fix(translate): explicit IMF fixed-token preservation for Nordic + EU-core languages; strip WEP/all-caps prose-label leak from priority-finding meta description @copilot-swe-agent[bot] (#2101)
  • Follow-up D: ESLint max-lines enforcement, source-file-size drift-guard, ARCHITECTURE.md topology refresh @copilot-swe-agent[bot] (#2089)
  • refactor: split oversized MCP modules — ep/client.ts 462→396, connection.ts 599→400, imf/client.ts 578→383 LOC @copilot-swe-agent[bot] (#2086)
  • [WIP] Refactor i18n constants to reduce file size for articles @copilot-swe-agent[bot] (#2087)
  • Split artifact-highlight.ts into translated-sibling / artifact-walker / editorial-highlight modules @copilot-swe-agent[bot] (#2088)

⚙️ Component Updates

  • fix(translate): explicit IMF fixed-token preservation for Nordic + EU-core languages; strip WEP/all-caps prose-label leak from priority-finding meta description @copilot-swe-agent[bot] (#2101)
  • Follow-up D: ESLint max-lines enforcement, source-file-size drift-guard, ARCHITECTURE.md topology refresh @copilot-swe-agent[bot] (#2089)
  • refactor: split oversized MCP modules — ep/client.ts 462→396, connection.ts 599→400, imf/client.ts 578→383 LOC @copilot-swe-agent[bot] (#2086)
  • [WIP] Refactor i18n constants to reduce file size for articles @copilot-swe-agent[bot] (#2087)
  • Split artifact-highlight.ts into translated-sibling / artifact-walker / editorial-highlight modules @copilot-swe-agent[bot] (#2088)

📊 Release Metrics & Evidence

Test Coverage
API Documentation
E2E Tests

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

SLSA 3
OpenSSF Scorecard
OpenSSF Best Practices

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.20.zip -R Hack23/euparliamentmonitor
npm audit signatures

Browse attestations: View all attestations

📋 ISMS Compliance & Policies

Hack23 ISMS
Information Security Policy
Open Source Policy
Secure Development

Compliance Frameworks

ISO 27001:2022
NIST CSF 2.0
CIS Controls v8.1

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.20.zip Full application package SHA-256 checksum, SLSA attestation
euparliamentmonitor-0.9.20.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

🏗️ 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, @github-actions[bot], @pethers, copilot-swe-agent[bot] and github-actions[bot]

Full Changelog: v0.9.19...0.9.20

📦 Release Artifacts

  • euparliamentmonitor-v0.9.20.zip - Full application package
  • euparliamentmonitor-v0.9.20.spdx.json - SBOM (Software Bill of Materials)
  • *.intoto.jsonl - SLSA Build Provenance Attestations

📦 npm Package

npm install euparliamentmonitor@0.9.20

Published 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.20.zip -R Hack23/euparliamentmonitor