Skip to main content

Changelog

A short summary of the latest additions and corrections. For the full history see the CHANGELOG in the repository.

Unreleased

Added

  • Admin proposals: multi-select with per-row checkboxes and a bulk action bar for one-click status changes (Draft / Pending review / Published / Archived) and bulk delete.
  • Telegram bot: candidate and district replies now include direct links back to the matching pages on the site, and the site footer links to the bot at t.me/elezzjonibot.
  • AI Assistant: authoritative facts (party leaders, deputy leaders, election date) are now built live from the database and injected on every chat request, so leadership questions can no longer fall back to outdated training data — including via the Telegram /ask command.
  • AI Assistant: district intent boost — queries mentioning a district (e.g. "district 12") now trigger a direct database lookup for the 2026 cycle and inject the structured candidate list into the chat context.

Fixed

  • Telegram bot: /district 12 returned a different candidate set than the /my-district/12 page on the site. The bot now applies the same filtering as the site (sitting MPs included, unconfirmed incumbents hidden, published status required for new candidates).

2026-05-01

Added

  • Proposals: AI-generated bilingual translation — one-click EN/MT fill-in from the proposal editor, plus an "Auto-translate missing" bulk action in the admin list.
  • Proposals: multiple categories per proposal, with AI-generated category suggestions in the editor.
  • Manifesto Import: split-pane PDF preview in the Review step, jumping to the source page for the selected row with the AI's verbatim quote shown above the PDF.
  • Candidate photo finder: bulk "Find missing photos" action and per-row "Find photo" button using Firecrawl + Gemini against trusted sources, with social-CDN URLs filtered out.
  • News Monitor → Convert to Action: AI auto-fill button that re-scrapes the source article and pre-populates the target form (candidate, party, or proposal), and support for creating multiple proposals from a single article in one batch save.
  • AI Assistant admin (/admin/assistant) workspace to configure data sources, reindex on demand, edit the system prompt and model, and review reindex runs.
  • Paste-a-URL news scan in /admin/news using the same Firecrawl + AI pipeline as the scheduled scans.
  • Voting eligibility CTA on the landing page linking to the official Electoral Commission register.
  • Dynamic stats strip on the landing page with live counts and a days-to-election countdown.
  • District candidate counts on the landing-page interactive map.

Changed

  • Voting FAQs: English translation is now on-demand — Maltese-only rows are saved as-is and staff can trigger an AI Translate per row.
  • AI Assistant retrieval switched from vector embeddings to Postgres full-text search (ts_rank over a generated tsvector with GIN index), removing "invalid model" reindex errors.
  • Admin candidates status column now shows "Sitting MP · not contesting 2026" for sitting MPs flagged as not contesting the 2026 election.

Fixed

  • Disclaimers admin: resolved a "No QueryClient set" runtime error when opening the disclaimers workspace.

2026-04-29

Added

  • Admin News monitor — automated scanner across Times of Malta, Malta Independent, MaltaToday, Lovin Malta, and Newsbook (4× daily plus on-demand) using Lovable AI to detect proposals, candidates, and key developments.
  • Convert findings into actions: one-click create/update of a candidate, new proposal, or new party from a news finding, auto-linking the source URL.
  • Admin audit log — every staff action on candidates, proposals, parties, and news findings is recorded at /admin/audit.
  • Global command palette (⌘K / Ctrl+K) covering candidates, parties, proposals, and districts, with arrow-key navigation and a "See all results" fallback.
  • Global search reachable from every viewport, including a header search button on small/medium screens and a Search entry in the mobile menu.
  • District results in global search and on the /search page (with a Districts filter tab).
  • Keyboard shortcuts (press ? to view): /, h, c, d, p, r, m, x, a, l, Esc.
  • New party: Imperium Europa with candidate Eman Cross.
  • New party: Aħwa Maltin, led by Iris Vella, contesting all 13 districts in 2026.
  • PN proposal: National Healthcare Park.
  • 6 new PL proposals (social-security transfer between couples, +€50/week pensions, free child therapy, +28 days parental leave, 6 months paid parental leave, "Our Next Home" benefits).
  • "Not contesting for 2026" tag on candidate cards and sitting-MP listings.

Changed

  • Rebrand: "Vot Malta" renamed to "Elezzjoni" across the site (legal pages, navigation, dictionaries, admin, auth, candidate and district pages).