Loading...
Loading...
Compare original and translation side by side
| File | Purpose |
|---|---|
| Source of truth for graft counts and metadata |
| Migration files that define grafts |
| Type definitions ( |
| Developer guide |
| 文件 | 用途 |
|---|---|
| graft数量及元数据的权威来源 |
| 定义graft的迁移文件 |
| 类型定义( |
| 开发者指南 |
{
"grafts": {
"total": 10,
"breakdown": {
"platform": 8,
"greenhouse": 2
},
"byType": {
"boolean": 9,
"number": 1
}
},
"flags": [
{
"id": "fireside_mode",
"name": "Fireside Mode",
"type": "boolean",
"greenhouseOnly": true,
"migration": "040_fireside_scribe_grafts.sql",
"description": "AI-assisted writing prompts"
}
]
}{
"grafts": {
"total": 10,
"breakdown": {
"platform": 8,
"greenhouse": 2
},
"byType": {
"boolean": 9,
"number": 1
}
},
"flags": [
{
"id": "fireside_mode",
"name": "Fireside Mode",
"type": "boolean",
"greenhouseOnly": true,
"migration": "040_fireside_scribe_grafts.sql",
"description": "AI-assisted writing prompts"
}
]
}undefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefined.github/graft-inventory.json"grafts": {
"total": <new count>,
"breakdown": {
"platform": <non-greenhouse count>,
"greenhouse": <greenhouse_only count>
}
}"flags": [
{
"id": "new_flag_id",
"name": "Human Readable Name",
"type": "boolean",
"greenhouseOnly": false,
"migration": "XXX_migration_name.sql",
"description": "What this flag controls"
}
]"lastUpdated": "YYYY-MM-DD",
"lastAuditedBy": "claude/<context>".github/graft-inventory.json"grafts": {
"total": <new count>,
"breakdown": {
"platform": <non-greenhouse count>,
"greenhouse": <greenhouse_only count>
}
}"flags": [
{
"id": "new_flag_id",
"name": "Human Readable Name",
"type": "boolean",
"greenhouseOnly": false,
"migration": "XXX_migration_name.sql",
"description": "What this flag controls"
}
]"lastUpdated": "YYYY-MM-DD",
"lastAuditedBy": "claude/<context>"packages/engine/src/lib/feature-flags/grafts.tsexport type KnownGraftId =
| "fireside_mode"
| "scribe_mode"
| "meadow_access"
| "jxl_encoding"
| "jxl_kill_switch"
| "new_flag_id"; // Add new flagpackages/engine/src/lib/feature-flags/grafts.tsexport type KnownGraftId =
| "fireside_mode"
| "scribe_mode"
| "meadow_access"
| "jxl_encoding"
| "jxl_kill_switch"
| "new_flag_id"; // 添加新标志git add .github/graft-inventory.json packages/engine/src/lib/feature-flags/grafts.ts
git commit -m "docs: update graft inventory
- Add <flag_id> to inventory
- Update total: X -> Y
- Update KnownGraftId type"git add .github/graft-inventory.json packages/engine/src/lib/feature-flags/grafts.ts
git commit -m "docs: update graft inventory
- Add <flag_id> to inventory
- Update total: X -> Y
- Update KnownGraftId type"undefinedundefinedundefinedundefinedpackages/engine/migrations/XXX_name.sqlnpx wrangler d1 execute grove-engine-db --remote --file=...KnownGraftIdgrafts.ts.github/graft-inventory.jsonlastUpdatedlastAuditedBypackages/engine/migrations/XXX_name.sqlnpx wrangler d1 execute grove-engine-db --remote --file=...grafts.tsKnownGraftId.github/graft-inventory.jsonlastUpdatedlastAuditedByundefinedundefined
If they don't match, migrations may need to be applied:
```bash
如果两者不匹配,可能需要应用迁移:
```bashundefinedundefined.github/workflows/graft-inventory.ymlpackages/engine/migrations/*.sqlpackages/engine/src/lib/feature-flags/**.github/workflows/graft-inventory.ymlpackages/engine/migrations/*.sqlpackages/engine/src/lib/feature-flags/**totalflagsKnownGraftIdlastUpdatedtotal = platform + greenhousetotalflagsKnownGraftIdlastUpdatedtotal = platform + greenhouse