@cat-factory/app 0.137.1 → 0.137.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -505,7 +505,11 @@ function done() {
505
505
  <UIcon name="i-lucide-check" class="h-3.5 w-3.5" />
506
506
  {{ t('github.addService.addedConfigure', { title: configuredBlock.title }) }}
507
507
  </div>
508
+ <!-- Test infrastructure only applies to a runnable frame — a `document`
509
+ repo stands up no test environment, so skip it (parity with the
510
+ inspector, which hides the same panel for a document frame). -->
508
511
  <ServiceTestConfig
512
+ v-if="configuredBlock.type !== 'document'"
509
513
  :block="configuredBlock"
510
514
  :repo="{ githubId: selectedRepoId! }"
511
515
  default-open
@@ -44,6 +44,24 @@ describe('inspector panel group', () => {
44
44
  ])
45
45
  })
46
46
 
47
+ it('a document frame hides the test-infra / test-credentials / release-health panels', () => {
48
+ // A doc repo stands up no test env and ships no release, so those panels don't apply.
49
+ expect(visibleIds(block('frame', 'document'))).toEqual([
50
+ 'container-summary',
51
+ 'service-fragments',
52
+ ])
53
+ })
54
+
55
+ it('a library frame still shows the test/deploy panels (only document is excluded)', () => {
56
+ expect(visibleIds(block('frame', 'library'))).toEqual([
57
+ 'container-summary',
58
+ 'service-test-config',
59
+ 'service-test-secrets',
60
+ 'service-fragments',
61
+ 'service-release-health',
62
+ ])
63
+ })
64
+
47
65
  it('a frontend frame swaps connections for frontend-config', () => {
48
66
  expect(visibleIds(block('frame', 'frontend'))).toEqual([
49
67
  'container-summary',
@@ -75,6 +75,14 @@ const isTask = (b: Block) => b.level === 'task'
75
75
  const isFrame = (b: Block) => b.level === 'frame'
76
76
  /** frame OR module — the "container" panels. */
77
77
  const isContainer = (b: Block) => b.level === 'frame' || b.level === 'module'
78
+ /**
79
+ * A frame that gets built, tested and deployed as a running thing — i.e. every frame
80
+ * EXCEPT a `document` repo. A document repo (`FrameRepoType` `document`) only runs
81
+ * doc/spike tasks + doc pipelines: it stands up no test environment, holds no test
82
+ * credentials and never ships a release to watch, so the test-infrastructure /
83
+ * test-credentials / post-release-health panels don't apply to it and are hidden.
84
+ */
85
+ const isDeployableFrame = (b: Block) => isFrame(b) && b.type !== 'document'
78
86
 
79
87
  /**
80
88
  * The built-in panel specs. The `when` predicates and orders reproduce
@@ -83,7 +91,9 @@ const isContainer = (b: Block) => b.level === 'frame' || b.level === 'module'
83
91
  * - task body: context docs/issues, then schedule → execution → estimate →
84
92
  * dependencies → run-settings → agent-config → structure.
85
93
  * - service/module body: container summary (frame|module), then the frame-only
86
- * panels, with frontend-config / service-connections further gated on `type`.
94
+ * panels, with frontend-config / service-connections further gated on `type`,
95
+ * and the test-infrastructure / test-credentials / post-release-health panels
96
+ * hidden for a `document` frame (a doc repo has no test env / release to config).
87
97
  * - epic / initiative bodies: their single inspector.
88
98
  *
89
99
  * The frame-only "view requirements" button and the cross-cutting run banners
@@ -104,10 +114,10 @@ export const INSPECTOR_PANEL_SPECS: readonly InspectorPanelSpec[] = [
104
114
  { id: 'container-summary', order: 110, when: isContainer },
105
115
  { id: 'frontend-config', order: 120, when: (b) => isFrame(b) && b.type === 'frontend' },
106
116
  { id: 'service-connections', order: 130, when: (b) => isFrame(b) && b.type === 'service' },
107
- { id: 'service-test-config', order: 140, when: isFrame },
108
- { id: 'service-test-secrets', order: 150, when: isFrame },
117
+ { id: 'service-test-config', order: 140, when: isDeployableFrame },
118
+ { id: 'service-test-secrets', order: 150, when: isDeployableFrame },
109
119
  { id: 'service-fragments', order: 160, when: isFrame },
110
- { id: 'service-release-health', order: 170, when: isFrame },
120
+ { id: 'service-release-health', order: 170, when: isDeployableFrame },
111
121
  { id: 'epic-children', order: 200, when: (b) => b.level === 'epic' },
112
122
  { id: 'initiative-inspector', order: 210, when: (b) => b.level === 'initiative' },
113
123
  ]
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cat-factory/app",
3
- "version": "0.137.1",
3
+ "version": "0.137.2",
4
4
  "description": "Reusable Nuxt layer for the Agent Architecture Board SPA (components, stores, composables, pages). Consume it from a thin deployment app via `extends: ['@cat-factory/app']` and point it at your backend with NUXT_PUBLIC_API_BASE. See deploy/frontend for an example.",
5
5
  "repository": {
6
6
  "type": "git",