What's shipped
-
25 May 2026v2.0Rebuild
The homepage is now a front door
Closes the long migration. The homepage went from 7,843 lines of hand-typed cards to a 561-line front door — masthead, today's events, a tiny "coming up" teaser, and a live asks card. Everything else moved to the destination it belonged to.
- Today's events render live from
events.json— the same data sourcecalendar.htmlrenders from. Mira's WhatsApp commands and the auto-ingest pipeline write to that JSON; both pages refresh from it on every load. No more drift between calendar and homepage. - Coming up is a teaser, not a duplicate — one line ("12 events this week → calendar.html"), no card duplication. Visitors who want depth click through.
- Live community asks — three open
gaps.jsonentries with ask-counts, plus a link to the community board. Replaces the old buried "open asks" panel. - The wall stripe moved off the homepage — wall.html owns posters now. The deep footer links there. Cleaner separation between the front door and the curated poster gallery.
- Cuts — the mini-month calendar, "Did you know" facts, "Add to the page" submit, the cartoon strip, and the public pipeline status block are all gone from the homepage. (Cartoon found a new home in story.html.)
- Search routing — searches from any page's top bar still land here as
?q=…. The new homepage shows an honest "search lives on each destination page" banner with chips back to Calendar / Directory / Board / Q&A. A real full-site search index is a separate task. - Stage-9d pipeline alignment (shipped a few hours ago, restated here for the record):
mira.pyandmerge.pynow writeevents.jsoninstead of HTML cards.dispatcher.pypushesevents.jsonalongside other surfaces.
- Today's events render live from
-
24 May 2026v1.8Ingest
Week of 17–24 May — events, classes, asks, and three new sources
A focused 7-day refresh: scan the last week of WhatsApp posters, parse the chat text for non-postered events, and bring two new external sources online.
- 162 posters scanned · 86 from Voila Pondy + 76 from AV Noticeboard. 12 new dated events landed in Coming Up + This Month — Knitting Circle at Cantos, NSD's Tamil Therukoothu tour, A Woman or Not To Be at Adishakti, the postpartum doc More Than Blue, both remaining Light in Action theatre sessions, Yuvabe Foundation Programme, Summer Singing with Shalini, Sanskrit Orientation, Scribble With Me.
- Chat text mined · 53,000 lines of _chat.txt parsed for events with no poster, recurring class schedules, peer-recommended practitioners, and live board asks.
- 14 new Yellow Pages entries · Pondicherry Quiz Club, Thursday Movie Club, Free Flow Dance Mondays, Alma del Tango, Movement Training with Gopal, Mala's Embroidery, Wellpaper workshops, WoodPacker evening yoga, two community-recommended acupuncturists (Linda Lee at Auromode, Heidi at Pitanga), Gopal bodywork, Mani swimming, Healing House Clinic, Maroma's Echoes of Gold exhibition.
- 5 live community asks added to the board · urgent A+ blood for PIMS ICU, Tamil voice-over artists for Born Remembering, a Hindi/Bengali caregiver, an organic-textile tailor, and Alphonso mangoes from Debashish.
- News & Notes archive backfilled · issues #1130, #1131, and #1132 (latest, 21 May) downloaded to
avkb/pdfs/. The site's reference to #1130 had no PDF on disk — fixed. - Two new sources registered · auroartworld.org for curated arts events, and the auroville.org N&N archive for ongoing newsletter ingestion.
- 6 stale cards removed · everything dated 22 or 23 May is gone.
-
22 May 2026v1.7Feature
Search that actually finds things — and shareable links
The page search was quietly broken and is now fixed, smarter, and linkable — so a single URL can answer a question.
- Search bug fix · any typed search query was throwing a JavaScript error and silently returning nothing. The cause: the page-link entries in the search index had no date field, and the matcher assumed every entry did. Text search now works at all.
- Deeper index · search previously matched only card titles and a phone number. It now searches the full text of each card — descriptions, category labels, tags — so "cleaner", "IFS", or "strength training" surface the right listings even when those words aren't in the title.
- Word-aware matching · multi-word queries now match when every word appears, in any order. "house help" finds a card that says "househelp"; phrasing no longer has to be exact.
- Shareable search links ·
livinginauroville.in/?q=house+helpopens the page with the search panel pre-filled and results showing. One link pattern answers any question — and a query with no match still shows the no-results panel, which feeds the open-asks loop. - Cleanup · removed 13 placeholder listings and a batch of malformed markup left by the automated ingest.
-
17 May 2026v0.8Feature
Live event cards — richer, smarter, automated
Three distinct upgrades landed together: the page now runs itself, event cards now carry everything you need to act, and the navigation got out of the way.
Card enrichments — Today & This Week
- Poster thumbnails + lightbox · WhatsApp image posts now surface their poster image as a thumbnail on the event card. Tap to open a full-screen lightbox; close with the × button, clicking outside, or Escape. Keyboard accessible.
- WhatsApp contact links · when a card includes a contact phone number, it renders as a direct
wa.melink — one tap to open a WhatsApp chat with the organiser. Indian 10-digit numbers are auto-prefixed to +91. - Add to Calendar · a 📅 Calendar link appears on every dated event card, pre-filled with event title, date, time, venue, and source description. Parses "6 pm", "10:30 am" style times into the Google Calendar URL format; falls back to all-day if no time is given.
- Starts-in chip · shows "Starts in 2h 30m" for upcoming events today, shifting to a pulsing "● Happening now" indicator for events within two hours of their posted start time. Updates live every 60 seconds.
Hamburger navigation
- The masthead's growing row of pills, about section, and disclaimer block were merged into a single ☰ hamburger panel that slides in from the right. The top of the page is now quiet — just the site name, date, search, and the menu toggle.
- Panel contains: section jump links (Today, This Week, Next Week, This Month, Yellow Pages, Trades, Board), About blurb, disclaimer, and link to this release notes page.
- Closes on overlay click, Escape key, or any section link tap. Focus returns to the toggle button on close.
Automated hourly pipeline
- WhatsApp ingest via Whapi API · replaced the previous file-based chat export with a live REST pull from the Whapi gateway. Fetches the last N hours of messages from configured group chats, extracts events, and stages them for merging.
- N&N PDF auto-check · every pipeline run now checks
auroville.orgfor a new News & Notes issue. Processing uses Claude Haiku (cheaper than Sonnet). The issue-number check is idempotent — same issue, no re-processing. - launchd hourly agent · a macOS launch agent (
com.livinginauroville.pipeline.plist) runsbin/pipeline.shevery hour. Helper scriptbin/install-agent.shhandles install, uninstall, restart, and status checks. - macOS notifications · pipeline now fires a start notification and a completion notification via
terminal-notifier(withosascriptfallback). Works from launchd background context where the olderdisplay notificationcall silently failed. - WhatsApp summary via Whapi · replaced the brittle AppleScript GUI automation with a direct Whapi REST call. Summary message groups new cards by section (Today, This Week, …) with their titles, and links back to the site.
- Stale-date guard ·
merge.pynow skips any staged event card whosedata-dateis before today, preventing past events from landing in the live page on slow pipelines.
-
14 May 2026v0.7Polish
Quieter page — hide the empty
Two small but meaningful clean-ups based on direct feedback.
- Empty wall, hidden wall · if
wall.jsonhas no items (or fails to load), the entire#wallsection is now hidden rather than showing a placeholder "the wall is empty for now" message. A page that has nothing to say about a topic shouldn't say anything at all. - Language switcher hidden pending UX relook · the EN / TA / FR / HI / ES picker in the masthead is off for now. The page is English-only. The translation strings (
data-en,data-ta, …) remain in the DOM and the i18n machinery is intact, so flipping the switcher back on later is a one-line change. Any visitor who had previously selected another language now sees English — stored preference is cleared on load and the?lang=URL parameter is dropped.
Why this matters: empty placeholder messages teach visitors to skim past sections; the language switcher needed a proper mobile-first relook (the dropdown bug from v0.5 was a symptom, not the whole problem). Better to remove than to ship something half-right.
- Empty wall, hidden wall · if
-
14 May 2026v0.6Feature
Calendar view + text-only wall
Two changes that work together. A new month-grid calendar at the top of the page gives a calm overview of the month — every dated event card on the page rendered as a coloured dot on its day. Click a day to jump to that day's first event card with a brief flash-highlight. And the wall is now text-only — the two colourful posters that were jarring against the cream-and-terracotta page are replaced by typography-only cards that fit the rest of the site's reading-layer feel.
- Calendar layout · Mon-start month grid sitting between
#walland#today. Prev / next month arrows plus a "Today" jump button. Today's cell ringed in terracotta; past days dimmed. - Dot colour-coding · each event becomes a dot on its day, colour-mapped to the source — terracotta for Voila Pondy, gold for News & Notes, indigo for PMIT. Up to 4 dots per cell with "+N" overflow.
- Hover tooltips · the cell's
titleattribute lists every event on that day for long-press / hover preview. - Click-to-jump · clicking a populated day smooth-scrolls to that day's first event card and flash-outlines it in terracotta (re-using the search-result flash style).
- Wall, text-only · removed the poster
.picdivs and the lightbox-on-click. Each wall card is now a clean text block — date stamp in terracotta mono, title in Fraunces, where in Newsreader, source line at the bottom. Left edge terracotta border that warms to gold on hover. Echoes the visual rhythm of the cards in#today/#week. - Why text-only · two colourful posters on an otherwise photo-free cream page felt like visitors, not residents. Going to 20 would have multiplied the mismatch. Text-only fits the page's quieter reading-layer ambition without losing the "this week, hand-picked" function the wall serves.
- What didn't change ·
wall.jsonschema is unchanged (thesrcfield is just unused for now). The two poster JPGs remain inwall/in case we want to bring images back, perhaps as a duotone treatment that doesn't shout. The lightbox DOM is still in place but disconnected from clicks.
Why this matters: calendar gives the page a "what's the shape of my month?" view it didn't have. The wall change cleans up a visual debt that had been bothering both Sree and at least one viewer (Nico, indirectly — his "add a calendar" suggestion came partly because the wall didn't fill that role).
- Calendar layout · Mon-start month grid sitting between
-
13 May 2026v0.5Fix
Mobile language dropdown — no longer strands off-screen
On narrow viewports the masthead's flex-wrap was placing the
.lang-switchercontainer such that the absolutely-positioned dropdown anchored toright: 0ended up off the left edge of the screen, hidden behind the chrome. The dropdown opened, but you couldn't see it.- Fix · on viewports ≤ 720 px the dropdown is upgraded to
position: fixedon open, anchored to the actual on-screen rect of the language button. The base CSS also gains amax-width: calc(100vw - 1rem)safety net for any future containing-block surprises. - Resize-safe · rotating the device or resizing while the dropdown is open re-anchors it to the new button position.
- Click-out behaviour preserved · clicking outside still closes the dropdown; clicking inside it (without picking a language) no longer accidentally closes.
Reported by Sree from a mobile screenshot. Headless-tested at desktop (1200 px), tablet edge (720 px), and iPhone-like (380 px) widths — all three behave correctly.
- Fix · on viewports ≤ 720 px the dropdown is upgraded to
-
13 May 2026v0.4UX
Inline search results — see what matched without dismissing the overlay
Typing into the search overlay now renders matching items as clickable cards inside the box — each with the section it belongs to, the title, and a short snippet with the matched substring highlighted. Click to close the overlay, smooth-scroll to the item, and brief flash-outline so your eye lands on it.
- Inline result cards · up to 12 shown; if there are more, a small "+N more · close to see them all in context" hint at the bottom.
- Section labels derived from each section's
.sec-label, so you see "Yellow Pages · Sound Meditation" rather than a bare title. - Highlighted snippet · ±70 chars around the match, with the matched substring wrapped in
<mark>in a soft gold wash. - Visitor asks now searchable ·
.vg-itementries fromgaps.jsonare added to the search index, so typing "hair" surfaces the open ask from the community panel alongside any rendered cards. - Keyboard-friendly · results are anchors with
tabindex="0"; Enter/Space activate just like click. Esc still closes the overlay.
Why this matters: the previous overlay told you "1 of 96 matches" but left the result hidden behind the overlay. You had to close the search to find what matched. Now the match is right there in the box.
-
13 May 2026v0.3Feature
The gaps feedback loop
A new
gaps.jsonmanifest holds every search that came up empty and got reported. The page now turns dead-end searches into a feedback channel — and shows visitors what others are looking for.- gaps.json manifest with a hand-curated schema — id, label, query, aliases, category, asks, first/last asked dates, source, notes, status (open / answered / merged-into-yellow-pages).
- Seeded with ELD's PMIT ask · women's hairdresser — first known visitor ask, awaiting a name to forward.
- "From visitors · open asks" panel below the editorial top-8 in
#gaps. Renders gaps with statusopen, sorted by ask count, each with an "I can help" mailto CTA. - Search zero-result CTA · when a query returns 0 matches, the overlay shows a "Log this ask →" mailto button prefilled with the literal query and page URL, plus a "related open asks" list of any gaps whose aliases overlap with the query.
- Triage workflow documented in
README.md— open the email, bumpaskson existing entry or add a new one, commit. When an answer lands, flip status and add to Yellow Pages.
Why this matters: ELD's PMIT message ("I need a good hair dresser. For women") was the catalyst. Today she'd have searched and seen "0 matches" — dead end. Now the page captures the ask, ranks it against others, and turns it into a quiet to-do for the maintainers.
-
13 May 2026v0.2UX
Shareable section anchors
Every
<section[id]>on the homepage now gets a small terracotta ¶ pill at the top-right of its heading. Hover-revealed on desktop, always visible on mobile. Click copies the canonical URL (e.g.livinginauroville.in/#yellow) to the clipboard, briefly shows a "link copied" tooltip, and updates the address bar so the URL is also copy-able from there.- 17 sections wired · the wall, today, this week, next week, this month, yellow pages, trades, open questions, board, more channels, gaps, share, submit, did-you-know, cartoons, about, how-to.
- Survives language switching · anchors are inserted as siblings of the
<h2>(not children) so the i18n innerHTML rewrites don't wipe them out. - Deep-link highlight · arriving via a URL with a hash briefly flashes the section in a soft terracotta wash so the eye lands on it.
- Mobile-friendly · 26 px tap targets, always visible (no hover state to discover).
Why this matters: people share what's easy to share. Now you can point a friend at "today's events" with a single clean URL instead of "scroll halfway down the page."
-
13 May 2026v0.1Spin-off
Forked from sreebalakrishnan.in/av — a domain of its own
The bioregion page graduated to its own domain. Every
/av/*URL on the personal site now redirects here. URLs flattened in the process: the domain itself is the umbrella, so/av/bioregion→/,/av/sources→/sources,/av/terms→/terms.- What moved · the bioregion page (now the homepage), the sources page, the terms page, the wall manifest + poster JPGs, the wall curation log, the cartoons folder, and the
bin/check-sources.py+bin/pick-posters.pyscripts. - Knowledge base stays put ·
~/Developer/avkb/remains where it is. Both sites can read from it. - Redirects ·
_redirectson the old domain forwards every/av/*path and the older/bioregionshortcut to the matching path here. HTML stubs in place as a fallback for hosts that don't honour_redirectsfor nested paths. - Share URLs updated · the WhatsApp share button and the "submitted from" stamp in the form now point at
livinginauroville.in. - Prior history · every v0.x entry before this lives in the old release notes (entries v0.1 through v0.42). This timeline begins fresh on the new domain.
Why this matters: the bioregion page is a service for a community that doesn't overlap much with the rest of the personal site. A separate domain makes the proposition clear, lets it grow without dragging the personal site along, and keeps each repo's commit history focused.
- What moved · the bioregion page (now the homepage), the sources page, the terms page, the wall manifest + poster JPGs, the wall curation log, the cartoons folder, and the