Rename the Go app from Meet to Calls
Module path, package directories, environment variables, stylesheets and
CSS class names all move to "calls". The identity changes; the path grammar
does not.
Routes keep their shape deliberately. /m/{sqid} and /meetings/{sqid} say
nothing user-visible about "meet", and renaming them would disturb live
invitation links, join-cookie scoping and the native clients' registered
URL handlers for a change nobody can see. Invitations are looked up by hash
with a documented legacy hash-only path, which is not a surface to churn
for cosmetics.
Two constants were changed with their consequences understood, both safe
only because this app holds no real data:
seal.label ("oficina/meet:" -> "oficina/calls:") is mixed into every
derived key, so every previously sealed meeting title and link token is
now unreadable. seal.go says so in a comment; this is that case.
connect Namespace ("oficina/meet" -> "oficina/calls") is the cross-app
identifier Home knows this consumer by, and moves with home's own
registration.
MEET_* becomes CALLS_*, including CredentialsFromEnv's prefix and the
Xcode TEST_RUNNER_ passthroughs. No dual-name fallback: the CARLOS app is
being recreated rather than reconfigured, so the new app is set up with
the new names from the start and there is no window where both exist.
Left alone on purpose:
- "meeting"/"meets" everywhere: the English word, not the product.
- relay's abc:meet:... fixtures: the username suffix is opaque data
issued by the relay provider through CARLOS_RELAY, not app identity.
- the published v0.1.0 release asset meet-linux-arm64, which cannot be
deleted on this hub; the rename is additive from v0.1.1.
go build, go vet and the full test suite pass. The one remaining failure,
TestCreditsMatchProductionDependencies, fails identically on main: it reads
$GOROOT/LICENSE, which this Go 1.27.1 install does not ship.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
AGENTS.md+3 −3Makefile+11 −11PRODUCT.md+10 −10README.md+15 −15{meetcore => callscore}/auth.go+2 −2{meetcore => callscore}/auth_test.go+1 −1{meetcore => callscore}/room.go+2 −2{meetcore => callscore}/room_test.go+3 −3{meetcore => callscore}/transport.go+3 −3{meetcore => callscore}/transport_test.go+4 −4cmd/{meet => calls}/main.go+16 −16docs/superpowers/copy/2026-09-10-slice-2-strings.md+7 −7docs/superpowers/plans/2026-09-08-meet-slice-1-meetings-links-signin.md+148 −148docs/superpowers/plans/2026-09-09-meet-slices-2-6-programme.md+2 −2docs/superpowers/plans/2026-09-10-meet-slice-2-room.md+63 −63docs/superpowers/plans/2026-09-10-meet-slice-3-relay.md+44 −44docs/superpowers/plans/2026-09-10-meet-slice-4-chat.md+22 −22docs/superpowers/plans/2026-09-11-meet-slice-5-drive.md+18 −18docs/superpowers/plans/2026-09-14-meet-slice-6-deploy.md+10 −10docs/superpowers/reviews/2026-09-09-codex-code-r1.md+46 −46docs/superpowers/reviews/2026-09-10-slice-2-record.md+7 −7docs/superpowers/reviews/2026-09-10-slice-3-record.md+2 −2docs/superpowers/reviews/2026-09-10-slice-4-record.md+2 −2docs/superpowers/reviews/2026-09-11-slice-5-record.md+5 −5docs/superpowers/reviews/2026-09-14-slice-6-record.md+10 −10docs/superpowers/specs/2026-09-07-meet-design.md+14 −14docs/superpowers/specs/CODEX-FINDINGS-MEET-R5.md+1 −1docs/superpowers/specs/CODEX-FINDINGS-MEET-R6.md+1 −1docs/superpowers/specs/CODEX-FINDINGS-MEET.md+1 −1docs/superpowers/specs/CODEX-REVIEW-BRIEF-MEET.md+2 −2go.mod+1 −1internal/{meet => calls}/agents.go+7 −7internal/{meet => calls}/agents_test.go+1 −1internal/{meet => calls}/api.go+4 −4internal/{meet => calls}/app.go+14 −14internal/{meet => calls}/app_relay_test.go+3 −3internal/{meet => calls}/auth.go+10 −10internal/{meet => calls}/auth_test.go+1 −1internal/{meet => calls}/budget.go+1 −1internal/{meet => calls}/budget_test.go+1 −1internal/{meet => calls}/config.go+18 −18internal/{meet => calls}/config_test.go+2 −2internal/{meet => calls}/credits.go+1 −1internal/{meet => calls}/credits/notices.json+0 −0internal/{meet => calls}/credits_inventory_test.go+2 −2internal/{meet => calls}/credits_test.go+2 −2internal/{meet => calls}/handlers_join.go+4 −4internal/{meet => calls}/handlers_meetings.go+8 −8internal/{meet => calls}/handlers_meetings_test.go+2 −2internal/{meet => calls}/handlers_room.go+12 −12internal/{meet => calls}/handlers_settings.go+5 −5internal/{meet => calls}/home.go+4 −4internal/{meet => calls}/home_native_test.go+4 −4internal/{meet => calls}/home_release_test.go+1 −1internal/{meet => calls}/home_router_test.go+4 −4internal/{meet => calls}/home_security_test.go+1 −1internal/{meet => calls}/hub/admission.go+0 −0internal/{meet => calls}/hub/admission_test.go+0 −0internal/{meet => calls}/hub/authorize.go+0 −0internal/{meet => calls}/hub/authorize_test.go+0 −0internal/{meet => calls}/hub/count.go+0 −0internal/{meet => calls}/hub/count_test.go+0 −0internal/{meet => calls}/hub/fanout.go+0 −0internal/{meet => calls}/hub/fanout_test.go+0 −0internal/{meet => calls}/hub/hub.go+0 −0internal/{meet => calls}/hub/hub_test.go+0 −0internal/{meet => calls}/hub/isolation_test.go+0 −0internal/{meet => calls}/hub/messages.go+1 −1internal/{meet => calls}/hub/relay.go+0 −0internal/{meet => calls}/hub/relay_test.go+0 −0internal/{meet => calls}/hub/subscriber.go+0 −0internal/{meet => calls}/hub/subscriber_test.go+0 −0internal/{meet => calls}/ice.go+12 −12internal/{meet => calls}/icons/icons.go+0 −0internal/{meet => calls}/ids.go+2 −2internal/{meet => calls}/ids_test.go+1 −1internal/{meet => calls}/joincookie.go+2 −2internal/{meet => calls}/joincookie_test.go+1 −1internal/{meet => calls}/mailredact.go+3 −3internal/{meet => calls}/mailredact_test.go+5 −5internal/{meet => calls}/migrations.go+1 −1internal/{meet => calls}/migrations/0001_init.sql+0 −0internal/{meet => calls}/migrations/0002_agents.sql+0 −0internal/{meet => calls}/migrations/0003_alter_meeting_links.sql+0 −0internal/{meet => calls}/migrations/schema.sql+0 −0internal/{meet => calls}/models.go+1 −1internal/{meet => calls}/native_auth.go+2 −2internal/{meet => calls}/native_auth_test.go+1 −1internal/{meet => calls}/participation.go+2 −2internal/{meet => calls}/ratelimit.go+1 −1internal/{meet => calls}/ratelimit_test.go+1 −1internal/{meet => calls}/relay/relay.go+0 −0internal/{meet => calls}/relay/relay_test.go+0 −0internal/{meet => calls}/render.go+2 −2internal/{meet => calls}/render_test.go+2 −2internal/{meet => calls}/seal/fingerprint.go+0 −0internal/{meet => calls}/seal/seal.go+1 −1internal/{meet => calls}/seal/seal_test.go+0 −0internal/{meet => calls}/signal.go+7 −7internal/{meet => calls}/standing.go+2 −2internal/{meet => calls}/static/brand/LICENSE.lucide+0 −0internal/{meet => calls}/static/brand/apple-touch-icon.pngbinaryinternal/{meet => calls}/static/brand/brand.css+0 −0internal/{meet => calls}/static/brand/icon-32.pngbinaryinternal/{meet => calls}/static/brand/icon.svg+0 −0internal/{meet => calls}/static/call-layout.js+6 −6internal/{meet/static/meet-shell.css => calls/static/calls-shell.css}+4 −4internal/{meet/static/meet.css => calls/static/calls.css}+68 −68internal/{meet => calls}/static/chat.css+1 −1internal/{meet => calls}/static/chat.js+0 −0internal/{meet => calls}/static/devices.js+1 −1internal/{meet => calls}/static/rastrillo.js+0 −0internal/{meet => calls}/static/room.js+10 −10internal/{meet => calls}/static/select.js+0 −0internal/{meet => calls}/static/share-link.js+0 −0internal/{meet => calls}/static/theme.css+0 −0internal/{meet => calls}/static/tokens.css+0 −0internal/{meet => calls}/store.go+12 −12internal/{meet => calls}/store_share_test.go+1 −1internal/{meet => calls}/store_test.go+3 −3internal/{meet => calls}/stream.go+9 −9internal/{meet => calls}/stream_key_test.go+1 −1internal/{meet => calls}/stream_test.go+1 −1internal/{meet => calls}/templates/agent_once.html+0 −0internal/{meet => calls}/templates/confirm.html+0 −0internal/{meet => calls}/templates/credits.html+0 −0internal/{meet => calls}/templates/errors.html+0 −0internal/{meet => calls}/templates/home.html+0 −0internal/{meet => calls}/templates/index.html+0 −0internal/{meet => calls}/templates/join.html+11 −11internal/{meet => calls}/templates/layout.html+1 −1internal/{meet => calls}/templates/link_once.html+0 −0internal/{meet => calls}/templates/native.html+0 −0internal/{meet => calls}/templates/partials/chat.html+0 −0internal/{meet => calls}/templates/room.html+14 −14internal/{meet => calls}/templates/settings.html+0 −0internal/{meet => calls}/templates/share.html+0 −0internal/{meet => calls}/templates/signin.html+1 −1internal/{meet => calls}/templates/welcome.html+0 −0internal/{meet => calls}/tick_test.go+2 −2internal/{meettest => callstest}/agents_test.go+3 −3internal/{meettest => callstest}/api_test.go+7 −7internal/{meettest => callstest}/browser_test.go+11 −11internal/{meettest => callstest}/chat_test.go+2 −2internal/{meettest => callstest}/config_test.go+7 −7internal/{meettest => callstest}/harness_test.go+10 −10internal/{meettest => callstest}/holding_test.go+5 −5internal/{meettest => callstest}/ice_test.go+7 −7internal/{meettest => callstest}/index_test.go+1 −1internal/{meettest => callstest}/iphone_browser_test.go+7 −7internal/{meettest => callstest}/isolation_test.go+2 −2internal/{meettest => callstest}/join_test.go+2 −2internal/{meettest => callstest}/meetings_test.go+1 −1internal/{meettest => callstest}/native_auth_browser_test.go+3 −3internal/{meettest => callstest}/native_browser_test.go+2 −2internal/{meettest => callstest}/relay_floor_test.go+2 −2internal/{meettest => callstest}/room_test.go+10 −10internal/{meettest => callstest}/schema_test.go+3 −3internal/{meettest => callstest}/share_test.go+1 −1internal/{meettest => callstest}/signal_test.go+6 −6internal/{meettest => callstest}/signin_test.go+7 −7internal/{meettest => callstest}/sse_test.go+1 −1internal/{meettest => callstest}/standing_test.go+1 −1internal/{meettest => callstest}/stream_test.go+1 −1internal/{meettest => callstest}/vendored_test.go+2 −2manifest/README.md+1 −1native/README.md+2 −2native/bridge/auth.go+3 −3native/bridge/bridge.go+3 −3native/bridge/bridge_test.go+6 −6native/go.mod+3 −3native/ios/README.md+2 −2native/ios/Tests/MeetPhoneTests.swift+1 −1native/ios/UITests/MeetPhoneUITests.swift+2 −2native/scripts/build-iphone.sh+2 −2package.json+1 −1test/browser/call.mjs+33 −33test/browser/native.mjs+4 −4
AGENTS.mdLoading diff…
MakefileLoading diff…
PRODUCT.mdLoading diff…
README.mdLoading diff…
{meetcore => callscore}/auth.goLoading diff…
{meetcore => callscore}/auth_test.goLoading diff…
{meetcore => callscore}/room.goLoading diff…
{meetcore => callscore}/room_test.goLoading diff…
{meetcore => callscore}/transport.goLoading diff…
{meetcore => callscore}/transport_test.goLoading diff…
cmd/{meet => calls}/main.goLoading diff…
docs/superpowers/copy/2026-09-10-slice-2-strings.mdLoading diff…
docs/superpowers/plans/2026-09-08-meet-slice-1-meetings-links-signin.mdLoading diff…
docs/superpowers/plans/2026-09-09-meet-slices-2-6-programme.mdLoading diff…
docs/superpowers/plans/2026-09-10-meet-slice-2-room.mdLoading diff…
docs/superpowers/plans/2026-09-10-meet-slice-3-relay.mdLoading diff…
docs/superpowers/plans/2026-09-10-meet-slice-4-chat.mdLoading diff…
docs/superpowers/plans/2026-09-11-meet-slice-5-drive.mdLoading diff…
docs/superpowers/plans/2026-09-14-meet-slice-6-deploy.mdLoading diff…
docs/superpowers/reviews/2026-09-09-codex-code-r1.mdLoading diff…
docs/superpowers/reviews/2026-09-10-slice-2-record.mdLoading diff…
docs/superpowers/reviews/2026-09-10-slice-3-record.mdLoading diff…
docs/superpowers/reviews/2026-09-10-slice-4-record.mdLoading diff…
docs/superpowers/reviews/2026-09-11-slice-5-record.mdLoading diff…
docs/superpowers/reviews/2026-09-14-slice-6-record.mdLoading diff…
docs/superpowers/specs/2026-09-07-meet-design.mdLoading diff…
docs/superpowers/specs/CODEX-FINDINGS-MEET-R5.mdLoading diff…
docs/superpowers/specs/CODEX-FINDINGS-MEET-R6.mdLoading diff…
docs/superpowers/specs/CODEX-FINDINGS-MEET.mdLoading diff…
docs/superpowers/specs/CODEX-REVIEW-BRIEF-MEET.mdLoading diff…
go.modLoading diff…
internal/{meet => calls}/agents.goLoading diff…
internal/{meet => calls}/agents_test.goLoading diff…
internal/{meet => calls}/api.goLoading diff…
internal/{meet => calls}/app.goLoading diff…
internal/{meet => calls}/app_relay_test.goLoading diff…
internal/{meet => calls}/auth.goLoading diff…
internal/{meet => calls}/auth_test.goLoading diff…
internal/{meet => calls}/budget.goLoading diff…
internal/{meet => calls}/budget_test.goLoading diff…
internal/{meet => calls}/config.goLoading diff…
internal/{meet => calls}/config_test.goLoading diff…
internal/{meet => calls}/credits.goLoading diff…
internal/{meet => calls}/credits/notices.jsonLoading diff…
internal/{meet => calls}/credits_inventory_test.goLoading diff…
internal/{meet => calls}/credits_test.goLoading diff…
internal/{meet => calls}/handlers_join.goLoading diff…
internal/{meet => calls}/handlers_meetings.goLoading diff…
internal/{meet => calls}/handlers_meetings_test.goLoading diff…
internal/{meet => calls}/handlers_room.goLoading diff…
internal/{meet => calls}/handlers_settings.goLoading diff…
internal/{meet => calls}/home.goLoading diff…
internal/{meet => calls}/home_native_test.goLoading diff…
internal/{meet => calls}/home_release_test.goLoading diff…
internal/{meet => calls}/home_router_test.goLoading diff…
internal/{meet => calls}/home_security_test.goLoading diff…
internal/{meet => calls}/hub/admission.goLoading diff…
internal/{meet => calls}/hub/admission_test.goLoading diff…
internal/{meet => calls}/hub/authorize.goLoading diff…
internal/{meet => calls}/hub/authorize_test.goLoading diff…
internal/{meet => calls}/hub/count.goLoading diff…
internal/{meet => calls}/hub/count_test.goLoading diff…
internal/{meet => calls}/hub/fanout.goLoading diff…
internal/{meet => calls}/hub/fanout_test.goLoading diff…
internal/{meet => calls}/hub/hub.goLoading diff…
internal/{meet => calls}/hub/hub_test.goLoading diff…
internal/{meet => calls}/hub/isolation_test.goLoading diff…
internal/{meet => calls}/hub/messages.goLoading diff…
internal/{meet => calls}/hub/relay.goLoading diff…
internal/{meet => calls}/hub/relay_test.goLoading diff…
internal/{meet => calls}/hub/subscriber.goLoading diff…
internal/{meet => calls}/hub/subscriber_test.goLoading diff…
internal/{meet => calls}/ice.goLoading diff…
internal/{meet => calls}/icons/icons.goLoading diff…
internal/{meet => calls}/ids.goLoading diff…
internal/{meet => calls}/ids_test.goLoading diff…
internal/{meet => calls}/joincookie.goLoading diff…
internal/{meet => calls}/joincookie_test.goLoading diff…
internal/{meet => calls}/mailredact.goLoading diff…
internal/{meet => calls}/mailredact_test.goLoading diff…
internal/{meet => calls}/migrations.goLoading diff…
internal/{meet => calls}/migrations/0001_init.sqlLoading diff…
internal/{meet => calls}/migrations/0002_agents.sqlLoading diff…
internal/{meet => calls}/migrations/0003_alter_meeting_links.sqlLoading diff…
internal/{meet => calls}/migrations/schema.sqlLoading diff…
internal/{meet => calls}/models.goLoading diff…
internal/{meet => calls}/native_auth.goLoading diff…
internal/{meet => calls}/native_auth_test.goLoading diff…
internal/{meet => calls}/participation.goLoading diff…
internal/{meet => calls}/ratelimit.goLoading diff…
internal/{meet => calls}/ratelimit_test.goLoading diff…
internal/{meet => calls}/relay/relay.goLoading diff…
internal/{meet => calls}/relay/relay_test.goLoading diff…
internal/{meet => calls}/render.goLoading diff…
internal/{meet => calls}/render_test.goLoading diff…
internal/{meet => calls}/seal/fingerprint.goLoading diff…
internal/{meet => calls}/seal/seal.goLoading diff…
internal/{meet => calls}/seal/seal_test.goLoading diff…
internal/{meet => calls}/signal.goLoading diff…
internal/{meet => calls}/standing.goLoading diff…
internal/{meet => calls}/static/brand/LICENSE.lucideLoading diff…
internal/{meet => calls}/static/brand/apple-touch-icon.pngLoading diff…
internal/{meet => calls}/static/brand/brand.cssLoading diff…
internal/{meet => calls}/static/brand/icon-32.pngLoading diff…
internal/{meet => calls}/static/brand/icon.svgLoading diff…
internal/{meet => calls}/static/call-layout.jsLoading diff…
internal/{meet/static/meet-shell.css => calls/static/calls-shell.css}Loading diff…
internal/{meet/static/meet.css => calls/static/calls.css}Loading diff…
internal/{meet => calls}/static/chat.cssLoading diff…
internal/{meet => calls}/static/chat.jsLoading diff…
internal/{meet => calls}/static/devices.jsLoading diff…
internal/{meet => calls}/static/rastrillo.jsLoading diff…
internal/{meet => calls}/static/room.jsLoading diff…
internal/{meet => calls}/static/select.jsLoading diff…
internal/{meet => calls}/static/share-link.jsLoading diff…
internal/{meet => calls}/static/theme.cssLoading diff…
internal/{meet => calls}/static/tokens.cssLoading diff…
internal/{meet => calls}/store.goLoading diff…
internal/{meet => calls}/store_share_test.goLoading diff…
internal/{meet => calls}/store_test.goLoading diff…
internal/{meet => calls}/stream.goLoading diff…
internal/{meet => calls}/stream_key_test.goLoading diff…
internal/{meet => calls}/stream_test.goLoading diff…
internal/{meet => calls}/templates/agent_once.htmlLoading diff…
internal/{meet => calls}/templates/confirm.htmlLoading diff…
internal/{meet => calls}/templates/credits.htmlLoading diff…
internal/{meet => calls}/templates/errors.htmlLoading diff…
internal/{meet => calls}/templates/home.htmlLoading diff…
internal/{meet => calls}/templates/index.htmlLoading diff…
internal/{meet => calls}/templates/join.htmlLoading diff…
internal/{meet => calls}/templates/layout.htmlLoading diff…
internal/{meet => calls}/templates/link_once.htmlLoading diff…
internal/{meet => calls}/templates/native.htmlLoading diff…
internal/{meet => calls}/templates/partials/chat.htmlLoading diff…
internal/{meet => calls}/templates/room.htmlLoading diff…
internal/{meet => calls}/templates/settings.htmlLoading diff…
internal/{meet => calls}/templates/share.htmlLoading diff…
internal/{meet => calls}/templates/signin.htmlLoading diff…
internal/{meet => calls}/templates/welcome.htmlLoading diff…
internal/{meet => calls}/tick_test.goLoading diff…
internal/{meettest => callstest}/agents_test.goLoading diff…
internal/{meettest => callstest}/api_test.goLoading diff…
internal/{meettest => callstest}/browser_test.goLoading diff…
internal/{meettest => callstest}/chat_test.goLoading diff…
internal/{meettest => callstest}/config_test.goLoading diff…
internal/{meettest => callstest}/harness_test.goLoading diff…
internal/{meettest => callstest}/holding_test.goLoading diff…
internal/{meettest => callstest}/ice_test.goLoading diff…
internal/{meettest => callstest}/index_test.goLoading diff…
internal/{meettest => callstest}/iphone_browser_test.goLoading diff…
internal/{meettest => callstest}/isolation_test.goLoading diff…
internal/{meettest => callstest}/join_test.goLoading diff…
internal/{meettest => callstest}/meetings_test.goLoading diff…
internal/{meettest => callstest}/native_auth_browser_test.goLoading diff…
internal/{meettest => callstest}/native_browser_test.goLoading diff…
internal/{meettest => callstest}/relay_floor_test.goLoading diff…
internal/{meettest => callstest}/room_test.goLoading diff…
internal/{meettest => callstest}/schema_test.goLoading diff…
internal/{meettest => callstest}/share_test.goLoading diff…
internal/{meettest => callstest}/signal_test.goLoading diff…
internal/{meettest => callstest}/signin_test.goLoading diff…
internal/{meettest => callstest}/sse_test.goLoading diff…
internal/{meettest => callstest}/standing_test.goLoading diff…
internal/{meettest => callstest}/stream_test.goLoading diff…
internal/{meettest => callstest}/vendored_test.goLoading diff…
manifest/README.mdLoading diff…
native/README.mdLoading diff…
native/bridge/auth.goLoading diff…
native/bridge/bridge.goLoading diff…
native/bridge/bridge_test.goLoading diff…
native/go.modLoading diff…
native/ios/README.mdLoading diff…
native/ios/Tests/MeetPhoneTests.swiftLoading diff…
native/ios/UITests/MeetPhoneUITests.swiftLoading diff…
native/scripts/build-iphone.shLoading diff…
package.jsonLoading diff…
test/browser/call.mjsLoading diff…
test/browser/native.mjsLoading diff…