@cat-factory/app 0.107.5 → 0.107.7

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.
@@ -49,6 +49,22 @@ function set(key: string, value: InitiativePresetInputValue | undefined): void {
49
49
  model.value = next
50
50
  }
51
51
 
52
+ /**
53
+ * Set a checkbox value. A checkbox whose descriptor default is ON (`default: 'true'`) must be able
54
+ * to persist an explicit `false`: {@link set} otherwise drops a `false` (an off box "stays unset"),
55
+ * which for a default-ON field is indistinguishable from "untouched, still on" — so a consumer that
56
+ * reads the opt-out as `humanReview !== false` (e.g. `seedMigrationPlan`) could never observe the
57
+ * unchecked state and the toggle would be dead. A default-OFF checkbox keeps the drop-when-false
58
+ * behaviour (absent === unchecked), so it never freezes a redundant `false`.
59
+ */
60
+ function setCheckbox(field: InitiativePresetField, checked: boolean): void {
61
+ if (!checked && field.default === 'true') {
62
+ model.value = { ...model.value, [field.key]: false }
63
+ return
64
+ }
65
+ set(field.key, checked)
66
+ }
67
+
52
68
  function stringValue(key: string): string {
53
69
  const v = model.value[key]
54
70
  return typeof v === 'string' ? v : ''
@@ -118,7 +134,7 @@ function selectItems(field: InitiativePresetField) {
118
134
  <USwitch
119
135
  v-else-if="field.type === 'checkbox'"
120
136
  :model-value="boolValue(field.key)"
121
- @update:model-value="(v: boolean) => set(field.key, v)"
137
+ @update:model-value="(v: boolean) => setCheckbox(field, v)"
122
138
  />
123
139
 
124
140
  <UTextarea
@@ -201,6 +201,7 @@ function selectTask() {
201
201
  v-if="task && statusMeta"
202
202
  :data-block-id="task.id"
203
203
  :data-status="task.status"
204
+ :data-task-type="task.taskType"
204
205
  data-testid="task-card"
205
206
  class="nodrag w-full cursor-pointer rounded-lg border bg-slate-950/70 p-2 text-start transition"
206
207
  :class="[
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cat-factory/app",
3
- "version": "0.107.5",
3
+ "version": "0.107.7",
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",