mirror of
https://github.com/hanzoai/insights.git
synced 2026-11-03 00:52:32 +00:00
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]>
36 lines
1.2 KiB
TypeScript
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: [],
|
|
}
|