Weverse public community, artist, media, and shop-catalog reads no longer require a Weverse connection; CatchTable and Hot Pepper Gourmet public reads now declare their existing connection-less behavior explicitly.
## Weverse public reads no longer require a Connection Weverse public reads were previously forced to require an APIFuse Connection because the provider authenticates with credentials for its account and personalized operations. That over-gated genuinely public endpoints: the Weverse main API serves community, artist, member, post, comment, media, and shop-catalog reads anonymously using only the public web request signature. These 39 operations now declare `connectionMode: "none"` and can be called without `X-ApiFuse-Connection-Id`. Connection is still required only for operations that read the signed-in user's own state or perform account actions: `connection-health`, `get-account-info`, `get-current-user`, `get-dm-user`, `get-jelly-balance`, `get-membership-benefits`, `get-my-membership`, `get-unseen-notification-count`, `get-user-settings`, `list-dm-subscriptions`, `list-showcased-rooms`, `shop-cart-count`, and `shop-logout`. ## CatchTable and Hot Pepper Gourmet: explicit connectionMode (no behavior change) As part of making `connectionMode` an explicit, lint-enforced field on every operation, the CatchTable public reads (`availability`, `reviews`, `search`, `shop`) and Hot Pepper Gourmet public reads (`availability`, `master-data`, `restaurant-detail`, `search-restaurants`, `time-slots`) now declare `connectionMode: "none"` in source. These operations were already connection-less at runtime; only their contract representation changed from an implicit default to an explicit declaration, which shifts their compatibility hash without changing behavior. Existing callers are unaffected.
- Affected surface
- weverse/get-app-state, weverse/get-artist-highlight, weverse/get-comment, weverse/get-community, weverse/get-community-tab, weverse/get-live-tab, weverse/get-member, weverse/get-post, weverse/get-posts, weverse/list-category-media, weverse/list-comment-artist-replies, weverse/list-comment-replies, weverse/list-community-all-media, weverse/list-community-media-categories, weverse/list-fan-letter-posts, weverse/list-feed-posts, weverse/list-group-communities, weverse/list-groups, weverse/list-live-posts, weverse/list-media-group-posts, weverse/list-member-comments, weverse/list-member-posts, weverse/list-post-artist-comments, weverse/list-post-comments, weverse/resolve-community, weverse/search-communities, weverse/shop-artist-banners, weverse/shop-artist-recent-sales, weverse/shop-home-banners, weverse/shop-home-notices, weverse/shop-marketing-banners, weverse/shop-pickup-banner, weverse/shop-pickup-detail, weverse/shop-pod-sales, weverse/shop-recent-sales, weverse/shop-recommend-sales, weverse/shop-recommended-sales, weverse/shop-return-exchange-info, weverse/shop-sale-curation, catchtable/availability, catchtable/reviews, catchtable/search, catchtable/shop, hotpepper-gourmet/availability, hotpepper-gourmet/master-data, hotpepper-gourmet/restaurant-detail, hotpepper-gourmet/search-restaurants, hotpepper-gourmet/time-slots
- Action required
- No
- Migration guidance
- The 39 Weverse read operations listed here now run without X-ApiFuse-Connection-Id (community metadata, posts, comments, members, media, and shop catalog/banner content). Existing callers that still send a connection keep working unchanged. Weverse operations that read the signed-in user's own state or account still require a connection (connection-health, get-account-info, get-current-user, get-dm-user, get-jelly-balance, get-membership-benefits, get-my-membership, get-unseen-notification-count, get-user-settings, list-dm-subscriptions, list-showcased-rooms, shop-cart-count, shop-logout). The CatchTable (availability, reviews, search, shop) and Hot Pepper Gourmet (availability, master-data, restaurant-detail, search-restaurants, time-slots) reads did not change behavior: they were already callable without a connection and now declare connectionMode "none" explicitly instead of relying on an implicit default.