Files
zeekayandHanzo Dev b497511c04 no hogs: stamphog and review_hog are stamp and review
Both are Django apps, and both pin `label` in apps.py — "stamp" and "review".
django_migrations keys a row on (app_label, name), and app_label comes from that
pin and not from the import path, so moving the directory does not orphan a
single migration. All six stay where they are, untouched.

  products/stamphog -> products/stamp     name = products.stamp.backend
  products/review_hog -> products/review  name = products.review.backend
  StamphogScene/ -> StampScene/, and stamphogSceneLogic.ts with it

189 files follow. An earlier attempt at this move failed twice for reasons worth
recording: `git mv A B` where B exists puts A INSIDE B, and a stray
products/stamp/node_modules from an abandoned run was enough to make B exist —
the app ended up nested two deep. And `git ls-files` does not list a file moved
with plain mv and not yet staged, so a pass over "every tracked file" silently
skips it; that is how StampScene.tsx kept importing ./stampSceneLogic after the
file beside it had been renamed back.

bin/check-imports-are-committed: all first-party imports across 15,843 files
resolve.

Co-authored-by: Hanzo Dev <[email protected]>
2026-08-09 10:18:18 -07:00

36 lines
1.2 KiB
TypeScript

/**
* Product manifest for stamp.
*
* Defines scenes, routes, URLs, and navigation for this product.
*/
import { ProductManifest } from '../../frontend/src/types'
export const manifest: ProductManifest = {
name: 'Stamp',
scenes: {
Stamp: {
// Single scene handles both the landing/list view and the post-install
// GitHub App callback — the scene logic inspects search params to decide.
import: () => import('./frontend/scenes/StampScene/StampScene'),
projectBased: true,
name: 'Stamp',
iconType: 'stamp',
},
},
routes: {
'/stamp': ['Stamp', 'stamp'],
// GitHub App Setup URL — GitHub redirects here after install with an installation_id search
// param. Lives under the product's own /stamp namespace, not /integrations/*, so the generic
// /integrations/:kind/callback scene route can't shadow it (product routes register after core).
'/stamp/install/callback': ['Stamp', 'stampCallback'],
},
redirects: {},
urls: {
stamp: (): string => '/stamp',
stampCallback: (): string => '/stamp/install/callback',
},
fileSystemTypes: {},
treeItemsNew: [],
treeItemsProducts: [],
}