Repository navigation
Releases
v1.99.0 — City Gallery & Arrival Paths
Turn anyone's GitHub login into a city card, and see which links bring visitors in. This release covers changelog version 1.99.0: everything merged since v1.98.0.
🔗 Open the live demo → · 🖼️ Open the city gallery →
Highlights
- 🖼️ City gallery. A new standalone page,
gallery.html, with no 3D scene. Type a GitHub login,owner/repoor repository URL to get that city's card. From the card you can walk the town, copy its/u/<login>share link or copy a README card. Below is the list of towns in the gallery. A town is listed only after its account opens a join issue, and is removed on request. - 🏙️ Your city first. The README's first button is now Build my city, and a new "Your city, as a card" section shows a live city card.
- 📍 Where visitors arrive from. Links tagged
ref=gallery,ref=card,ref=profile-readmeand similar are now counted by category in the anonymous page-load and first-visit events. Unknown values are sent asother, and the raw link text, logins and repository names are never sent. - 🚕 Taxi arrivals stay readable. When the taxi drops you at a house, its repo card no longer sits on top of the old chat. Closing the card brings the conversation back, with its history and any pending replies, and puts the cursor in the input box.
Notes
- Forks, custom domains and local clones have no card service, so the gallery shows text tiles and Pages links there.
- To ask for your town to be listed, open a gallery join issue.
What's Changed
- feat: city gallery (stage 1) and a your-city-first README by @hyeonsangjeon in #153
- feat: bounded arrival ref attribution (v1.99 part 2) by @hyeonsangjeon in #154
- fix: preserve taxi chat across house arrival cards by @hyeonsangjeon in #155
- docs: cut the 1.99.0 changelog for the v1.99.0 release by @hyeonsangjeon in #156
Full Changelog: v1.98.0...v1.99.0
v1.98.0 — Homecoming & City Cards
Your own city comes first, and a shared town now previews as its own city card. This release covers changelog versions 1.97.0 and 1.98.0: everything merged since v1.96.0.
Highlights
- 🏡 Homecoming. The first screen asks for a GitHub login. A public town's first visit plays a short arrival timelapse that ends on its city plaque (for example "CSS Boulevard of octocat"), then offers three paths: Explore, Understand and Contribute. Explore starts a three-house tour, and Wayfinding opens up as you visit.
- 🪪 City cards. 🔗 Copy link in a
?user=town now giveshttps://repolis-card.wingnut0310.workers.dev/u/<login>, whose link preview is that person's city card. The profile README portal embeds a card that is redrawn daily (/card/<login>.svg). - 📖 Passport Journey. A new Journey tab lists the houses you opened, the paths you took and the traces you left during this visit. The
?user=Town Gazette now says when a town has grown. - 🏛️ Source-backed Repository Atelier. The Atelier opens on the exact repository and its own description, with an explicit README reader. On the live site, answers come from that repository's complete public README or LICENSE and name the document they used.
- 🧭 A clearer first visit. Search is task-first. Speech bubbles and name labels are bounded, so they stay readable. Repo cards scroll and close reliably, and the town reports ready only after it has actually rendered.
- 🧹 Lighter storage, quieter refreshes. The public-town cache stays near 1 M characters instead of filling localStorage. The daily refresh rewrites only the resident files that changed.
Notes
- If your GitHub profile README already has the Repolis town portal, copy it again with Put this town on my GitHub profile to get the daily city card.
- The card Worker serves the canonical site only. Forks, custom domains and local clones keep their Pages links and banner. To run your own, see
cloudflare-card/README.md.
What's Changed
- Fix Creator Hall public Star total by @hyeonsangjeon in #116
- feat: version resident dialogue budget caps by @hyeonsangjeon in #117
- chore: raise visitor dialogue cap to ten dollars by @hyeonsangjeon in #118
- BOLT: improve the first-visit path (#120, #121, #122) by @hyeonsangjeon in #123
- fix: preserve scoped Atelier failures and chat focus by @hyeonsangjeon in #126
- fix: distinguish unanswered Repository Atelier replies by @hyeonsangjeon in #127
- fix: ground Atelier answers in complete public documents by @hyeonsangjeon in #128
- fix: authenticate public Atelier document reads by @hyeonsangjeon in #129
- fix: synthesize Atelier answers directly from verified documents by @hyeonsangjeon in #130
- fix: serialize and bound Entra token requests by @hyeonsangjeon in #131
- fix: collect bounded streamed Atelier completions by @hyeonsangjeon in #132
- fix: make town names readable and panel controls reliable by @hyeonsangjeon in #133
- feat: make Repository Atelier source-backed by @hyeonsangjeon in #135
- feat: make first discovery clearer and source maps visible by @hyeonsangjeon in #141
- feat: guide patch — Gitber phrasing coverage, mobile finish, archive wording, HTTP/1.1 serve (v1.96) by @hyeonsangjeon in #142
- feat: homecoming — your city first, arrival timelapse, three paths, unlocking wayfinding (v1.97) by @hyeonsangjeon in #143
- feat: shared district rule and city card modules (v1.98, part 1) by @hyeonsangjeon in #145
- fix: date-free resident artifacts so the daily refresh stops rewriting every profile by @hyeonsangjeon in #144
- feat: passport journey tab and public-town Gazette finish (v1.98, 4b) by @hyeonsangjeon in #146
- fix: Star nudge fits phones and waits for open panels; Passport Escape returns focus by @hyeonsangjeon in #147
- fix: bound the public-town data cache so heavy explorers keep localStorage by @hyeonsangjeon in #148
- feat: city card Worker repolis-card — share previews and card images (v1.98, part 3) by @hyeonsangjeon in #149
- chore: wire the created CARD_KV namespace into repolis-card by @hyeonsangjeon in #150
- feat: city card links — public towns share /u/, README portal shows the daily card (v1.98, part 4d) by @hyeonsangjeon in #151
- docs: cut the 1.96.0–1.98.0 changelog for the v1.98.0 release by @hyeonsangjeon in #152
Full Changelog: v1.96.0...v1.98.0
v1.96.0 — Procedural Surface Pass v2
What's Changed
- Harden #repo= deep link: repoHashKey never throws on a malformed hash by @hyeonsangjeon in #1
- District Expansion v1 — topic districts, world map & taxi district navigation by @hyeonsangjeon in #2
- World Loop Integration v1 — passport/course/cards speak districts by @hyeonsangjeon in #3
- Rebrand the repo taxi as 깃버/Gitber and move GitHub Station off its neighbour by @hyeonsangjeon in #4
- District Landmark Hubs v1 + remove repo-card debate jump by @hyeonsangjeon in #5
- feat: resident NPC social layer v1 (budget-capped townspeople) by @hyeonsangjeon in #6
- feat(taxi): live on/off toggle for resident-NPC AI via shared KV by @hyeonsangjeon in #7
- feat: resident NPCs wander the districts and walk over to talk by @hyeonsangjeon in #8
- fix: keep residents moving on LOW_END (mobile) — decouple motion from LOW_END by @hyeonsangjeon in #9
- fix: LOW_END residents walk at a lifelike pace (0.9), not a crawl by @hyeonsangjeon in #10
- Fix: resident speech bubbles no longer cut off mid-sentence by @hyeonsangjeon in #11
- feat: self-aware residents — they know they're AI and share how the city feels by @hyeonsangjeon in #12
- feat: plaza dreamer Noa, benches to rest on, and glowing night flowers by @hyeonsangjeon in #13
- feat(realtime): self-healing peer roster + private admin kick (no more ghost avatars) by @hyeonsangjeon in #14
- docs(readme): group a "Start here" 3-CTA row on the first screen (Live demo · Run locally · Fork your own) by @hyeonsangjeon in #15
- fix(city): restore the player hero spotlight in every phase (day/dawn/dusk, not just night) by @hyeonsangjeon in #16
- feat: residents greet the visitor + solo idle emotes (resident warmth) by @hyeonsangjeon in #17
- feat: residents gather into a group circle and take turns (not just 1:1) by @hyeonsangjeon in #18
- feat: the visitor can join a resident gathering and chat with the whole circle by @hyeonsangjeon in #19
- feat: group chat residents answer in context, not random small talk by @hyeonsangjeon in #20
- feat: invite a resident by name into the chat — they walk over and join the circle by @hyeonsangjeon in #21
- feat: a chatting circle notices the lingering visitor and waves them over by @hyeonsangjeon in #22
- feat: residents remark on the repo you walk up to, grounded in its real numbers by @hyeonsangjeon in #23
- feat: a cosy campfire 쉼터 where residents warm up, rest, and feel at home by @hyeonsangjeon in #24
- feat: the town remembers you — a warmer welcome for a returning visitor by @hyeonsangjeon in #25
- feat: graceful goodbyes — the circle waves you off, and no gathering is a trap by @hyeonsangjeon in #26
- docs: surface the daily self-refresh as a maintenance-signal badge by @hyeonsangjeon in #27
- feat: plaza bonfire festival — once a session the whole town gathers to celebrate by @hyeonsangjeon in #28
- fix: same-district residents no longer echo each other in group chat by @hyeonsangjeon in #29
- feat: every resident has a cherished haunt (아지트) they visit and love by @hyeonsangjeon in #30
- 🕰️ Residents keep a daily rhythm — morning stretch + time-of-day lines [1.67.0] by @hyeonsangjeon in #31
- 📝 Note the Kronos Council's live models (Azure AI Foundry) in README by @hyeonsangjeon in #32
- 💗 Give residents an inner life — drifting moods + fellow-feeling [1.68.0] by @hyeonsangjeon in #33
- 🫂 Residents have close friends — named bonds they seek out [1.69.0] by @hyeonsangjeon in #34
- 🚶 Two friends stroll off together after greeting [1.70.0] by @hyeonsangjeon in #35
- 🪑 Two friends sit down together on adjacent seats after a stroll [1.71.0] by @hyeonsangjeon in #36
- feat: discover repo connections through a constellation trail by @hyeonsangjeon in #37
- 🌳 Add the Repolis World Tree [1.73.0] by @hyeonsangjeon in #38
- 🌳 Make the World Tree the pillar of Repolis [1.74.0] by @hyeonsangjeon in #39
- feat: add luminous World Tree DNA foliage [1.75.0] by @hyeonsangjeon in #40
- feat: complete World Tree sculpt pipeline [1.76.0] by @hyeonsangjeon in #41
- feat: integrate Solar Archive World Tree [1.77.0] by @hyeonsangjeon in #42
- fix: isolate World Tree HDR [1.77.1] by @hyeonsangjeon in #43
- fix: restore living World Tree at night [1.77.2] by @hyeonsangjeon in #44
- feat: add Village Chronicle and restore scholar chat by @hyeonsangjeon in #45
- feat: add roaming MCP scholar handoffs by @hyeonsangjeon in #46
- fix: keep MIRA grounded when Context7 quota is exhausted by @hyeonsangjeon in #47
- feat: add Town Gazette return-visit digest by @hyeonsangjeon in #48
- feat: give residents Shared Joy excursions by @hyeonsangjeon in #49
- docs: polish README hero and demos by @hyeonsangjeon in #50
- feat: add Starlight Row resident homes by @hyeonsangjeon in #51
- feat: landscape Starlight Row by @hyeonsangjeon in #52
- feat: diversify Starlight Row cottages by @hyeonsangjeon in #53
- docs: connect demo to first town visit by @hyeonsangjeon in #54
- feat: enforce durable NPC budget cap by @hyeonsangjeon in #55
- Restore mid-LOD home readability by @hyeonsangjeon in #56
- feat: add Repository Atelier by @hyeonsangjeon in #57
- feat: add ClearSight obstruction-safe camera by @hyeonsangjeon in #58
- Add Petite-Venise canal ferry by @hyeonsangjeon in #59
- Fix canal ferry hull silhouette by @hyeonsangjeon in #60
- Seat the player on the canal ferry by @hyeonsangjeon in #61
- Add Rain Garden weather interaction by @hyeonsangjeon in #62
- Add Town Postcard Studio by @hyeonsangjeon in #63
- Add the Maintainers' Night Watch by @hyeonsangjeon in #64
- Restore repository house detail after World Tree LOD by @hyeonsangjeon in #65
- Add a GitHub profile README town portal by @hyeonsangjeon in #66
- Show personalized town proof before entry by @hyeonsangjeon in #67
- Surface the GitHub profile portal after town preview by @hyeonsangjeon in #68
- feat: connect GitHub profiles with Twin Towns by @hyeonsangjeon in #69
- feat: harden resident AI controls and telemetry by @hyeonsangjeon in #70
- fix: route telemetry through service binding by @hyeonsangjeon in #71
- feat: add Town Creator Hall by @hyeonsangjeon in #72
- feat: add Town Growth Replay by @hyeonsangjeon in #73
- Separate NPC switch state from runtime health by @hyeonsangjeon in #74
- feat: add repository-first Repo Portal by @hyeonsangjeon in #75
- feat: turn explored repos into shareable Repo Routes by @hyeonsangjeon in #76
- feat: turn repository issues into Open Source Quests by @hyeonsangjeon in #77
- feat: add deterministic city time state by @hyeonsangjeon in https://github.com/hyeo...
v1.0.0 — Repolis: the City of Repos 🏙️
Repolis turns every one of your GitHub repos into a walkable 3D city — beyond the 6‑pin profile limit.
Each house is a repo. Its height, width, ornamentation and garden don't grow from ⭐ — they grow from real traffic (visitors · clones · forks · views). Lost? Hail the 🚕 LLM taxi driver, say "show me a repo about RAG", and the cab drives over, picks you up, and takes you to that house.
Highlights
- 🏙️ Walkable low‑poly city — six house tiers (cabin → portico mansion), downtown towers vs. hometown cottages, single dependency‑free
index.html. - 📊 Metrics are the architecture — height = visitors · width = forks · ornaments = clones · garden = views · gold stars = ⭐.
- 🌙 Day & night with living windows — at night each repo's windows glow by how active it is (recent push · clones · views).
- 🧱 Solid buildings + roads — circle‑collision walking, brown dirt paths and asphalt ring‑roads with lane lines.
- 🚕 A taxi driver that actually drives you — local / WebLLM / Azure‑proxy modes.
- 🟢 Realtime multiplayer — name‑tagged avatars + live · today · all‑time visitor counter (Cloudflare Worker backend).
- 🔒 Your public repos + forks you've committed to — private repos and untouched mirror forks excluded.
- 🌐 English / 한국어, WoW‑style camera, desktop + mobile dual‑stick controls.
📜 Full details in CHANGELOG.md.
If it made you smile, a ⭐ helps others find Repolis. Thanks!