Release Notes
All notable changes to CivicPulse are documented here.
The full machine-readable changelog is also maintained at CHANGELOG.md in the repository root.
Releasesβ
| Version | Date | Highlights |
|---|---|---|
| v0.9.0 | 2026-03-09 | Instagram integration, Social Wall live for 3 platforms |
| v0.8.0 | 2026-03-09 | Accountability Chain β hierarchical official assignment system |
| v0.7.0 | 2026-03-09 | Modularize civic-pulse.jsx into 46 component files |
| v1.0.0 | 2025-03-02 | Initial production release |
v0.9.0 β Instagram Integration (2026-03-09)β
Feature: Instagram Graph API integration β the third social platform in CivicPulse's Social Wall, alongside X/Twitter and WhatsApp.
Backendβ
igService.jsβ Instagram Graph API client mirroringxService.js. Fetchesmentioned_mediafrom a configured Business account, formats posts into the shared CivicPulse mention shape, falls back to demo mode (5 mock mentions) whenIG_ACCESS_TOKENis not set.- 2 new API endpoints β
GET /api/ig/mentions(public, no auth) andPOST /api/ig/mentions/:mediaId/convert(auth required) - 15 new backend tests for igService (174 total across 10 suites)
- Shared
textDetection.jsβdetectCategory,detectCity,relativeTimereused across all 3 social services
Frontendβ
IGFeed.jsxβ Instagram feed component with Instagram-branded gradient styling (purple-pink), "View on Instagram" links, Convert buttons, and converted issues panelSocialWall.jsxβ replaced Instagram "Coming Soon" placeholder with liveIGFeed, added IG mode badgecivic-pulse.jsxβ addedigPosts/igMode/igLoaded/convIGstate,fetchIGMentionscallback,handleConvertIGhandler,ConvertModalfor IG postsmockData.jsonβ Instagram platform set tolive: true
Documentationβ
- New Instagram API Reference β env vars, endpoints, setup guide, mention shape
- Updated Architecture β new Social Integrations section with platform comparison and data flow diagram
- Updated Frontend β social component count 4β5, IGFeed added to inventory
- Updated API Overview β X, WhatsApp, Instagram added to endpoint groups table
- Updated Environment Variables β IG env vars documented
- X/Twitter and WhatsApp API docs added to sidebar navigation
v0.8.0 β Accountability Chain (2026-03-09)β
Feature: Hierarchical official assignment system mapping every civic issue to its chain of responsible officials β from Ward Officer up through Corporator, MLA, and MP.
Backendβ
- 4 new entity types β
jurisdiction,official,department,police_stationβ stored in a DynamoDB-ready single-table schema (PK/SK/entityType) backed by a single JSON seed file - Seed data for Mumbai (8 wards), Thane (3 wards), and Navi Mumbai (3 wards) β 75 total records covering jurisdictions, officials, departments, and police stations
- 5 new public API endpoints β
GET /api/accountability-chain,/api/jurisdictions,/api/officials,/api/departments,/api/police-stations - 7 new admin CRUD endpoints with CSV import/export for bulk management of all 4 entity types
- Issue schema extended β added
pincode,ward,area, andjurisdiction_idfields for geo-resolution - Reverse geocoding via OpenStreetMap Nominatim to auto-resolve pincode and ward from coordinates
- 19 new backend tests (139 total across 9 suites)
Frontendβ
- AssignmentPanel β redesigned as a hierarchical panel showing Ward Officer β Corporator β MLA β MP with contact deep-links (WhatsApp, X, Email)
- AccountabilityMini β compact inline chain display with resolved official names, shown on issue detail
- NewModal β added ward and pincode fields with auto-fill from reverse geocoding
- Admin: Accountability tab β full CRUD interface for jurisdictions, officials, departments, and police stations with CSV import/export
See Architecture β Accountability Chain for the entity model and resolution flow, and API Reference β Accountability for endpoint details.
v0.7.0 β Component Modularization (2026-03-09)β
Refactor: Decomposed the monolithic civic-pulse.jsx (~5,450 lines) into 46 modular component files + 1 new hook, organised by feature domain. The App root is reduced to ~310 lines.
- 46 new files across 12 domains: shared, media, maps, issues, browse, social, rankings, events, dashboard, support, admin, auth, landing
- 1 new hook β
useDonors.jsextracted from inline code - Zero behavioural changes β all existing functionality preserved
- Build verified β
vite buildpasses; 120 backend tests pass - Pre-refactor state tagged as
v0.6-monolithic
See Frontend for the full component inventory.
Releasing a New Versionβ
Use the release script from the project root:
# Bump patch version (1.0.0 β 1.0.1)
npm run release patch
# Bump minor version (1.0.0 β 1.1.0)
npm run release minor
# Bump major version (1.0.0 β 2.0.0)
npm run release major
# Or specify an exact version
npm run release 1.2.3
The script will:
- Update
versioninpackage.json,frontend/package.json, andbackend/package.json - Prepend a stub entry to
CHANGELOG.md(fill in your notes) - Create a git commit
chore(release): vX.Y.Zand tagvX.Y.Z
Then push:
git push origin master && git push origin vX.Y.Z
The GitHub Actions workflow will automatically deploy to the droplet on push to master.