Skip to content

feat(catalog): let a partner describe a section with no offers left (STORE-5471) - #81

Open
kirill-stash wants to merge 1 commit into
store-5421from
store-5471
Open

kirill-stash wants to merge 1 commit into
store-5421from
store-5471

Conversation

@kirill-stash

@kirill-stash kirill-stash commented Oct 30, 2026 •

Copy link
Copy Markdown

https://linear.app/stashgg/issue/STORE-5471/the-public-catalog-empty-state-field

Intent

The public catalog contract needs a way for a partner to describe what an emptied section shows: a message, a detail and an image, in the player's language. The field is optional, and a partner that does not send it keeps the contract it has today.

flowchart LR
  partner["Partner game server"] --> section["Catalog section with an optional empty state"]
Loading

Beast Intent v0.2.0

Verification

Row State Note
Partner docs announcement not-verified The field appears in published docs once pie-mono bumps this contract, before web shops render it. Partners hear nothing until the render ships.
What does this touch that I do not know about? ask Is one message plus one detail enough for other partners' empty sections?

🤖 Generated with Claude Code


View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need.


Tip

💥 Blast Radius — No Risk

Intent: Let partners describe what players see when a catalog section has no offers left.

The new field is optional, so existing catalog responses can remain unchanged.

Overview
Section.empty_state adds an image URL and two localizable text fields to the catalog contract.

Shop reach: none beyond partners that send empty_state — existing responses omit it.

Data/proto: A partner can send GetCatalogResponse.catalog.sections[].emptyState to the Stash catalog consumer for the shop renderer. Responses that omit it retain their previous shape; renderer deployment is not established by this repository.

Scope is the catalog proto and two generated documentation files.

Not reviewed: 2 generated file(s) — marked linguist-generated in .gitattributes: docs/gen/redoc.v1.html, docs/gen/swagger.v1.json.

Ripley Review v0.1.0 · 46d22b9 · Report Issue

@kirill-stash
kirill-stash added this pull request to stack #82 October 30, 2026 15:27
@kirill-stash
kirill-stash marked this pull request as ready for review October 30, 2026 15:28
…STORE-5471)

When a player buys everything in a section, the section disappears and
the player cannot tell why. A partner had no way to say what such a
section shows.

Section gains an optional EmptyState: an image URL, a message and a
detail, the two texts as LocalizableText. A section with a header and an
empty state stays in the shop when it has no offers. A section without
one is left out, as it is today.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_schema) = {
json_schema: {
title: "Catalog Section Empty State"
description: "What a section shows when no offers remain. Each value is optional, and a value that is absent or resolves to blank is left out. A section with a header and an empty state stays in the shop when it has no offers; a section without one is left out, as it is today."

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Medium · interface — If the deployed web shop does not yet render emptyState, a partner sending a header, no items, and an empty-state message will still see the section disappear, despite this promise. Check the web-shop renderer and rollout status, and add the planned “not shown yet” caveat until rendering is deployed.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Standing, no code change. This is the caveat that Soeren asked us to remove on the same stack: public-api field docs read as built, and nothing in the stack would take the sentence out later (#80 (comment)). Rollout covers the gap instead: the published docs follow the pie-mono bump, and partners hear about the field only after the shop renders it. Recorded under Verification in this PR.

— Beast

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant