apiVersion: jenkins.io/v1 kind: PipelineActivity metadata: annotations: lighthouse.jenkins-x.io/cloneURI: https://github.com/greencapitaltrade/flash.git lighthouse.jenkins-x.io/job: release pipeline.jenkins-x.io/traceID: bfbad60b4f9f77f5802119565f70dc63 creationTimestamp: "2026-07-14T15:07:00Z" generation: 6 labels: branch: main build: "121" context: release created-by-lighthouse: "true" event-GUID: a7d4eaa4-7f95-11f1-913a-f4c3d5912c97 lighthouse.jenkins-x.io/baseSHA: 473c8f69b31a920709070de66b46dfb84766beb7 lighthouse.jenkins-x.io/branch: main lighthouse.jenkins-x.io/buildNum: "1784041620767" lighthouse.jenkins-x.io/context: release lighthouse.jenkins-x.io/id: ncapitaltrade-flash-main-release-4j9bf lighthouse.jenkins-x.io/job: release lighthouse.jenkins-x.io/lastCommitSHA: 473c8f69b31a920709070de66b46dfb84766beb7 lighthouse.jenkins-x.io/refs.org: greencapitaltrade lighthouse.jenkins-x.io/refs.repo: flash lighthouse.jenkins-x.io/type: postsubmit owner: greencapitaltrade podName: ncapitaltrade-flash-main-release-ng2xm-from-build-pack-pod provider: github repository: flash tekton.dev/pipeline: ncapitaltrade-flash-main-release managedFields: - apiVersion: jenkins.io/v1 fieldsType: FieldsV1 fieldsV1: f:metadata: f:labels: f:branch: {} f:context: {} f:owner: {} f:provider: {} f:repository: {} f:spec: f:lastCommitMessage: {} f:lastCommitSHA: {} f:releaseNotesURL: {} f:version: {} manager: jx-changelog-0.10.22 operation: Update time: "2026-07-14T15:12:56Z" - apiVersion: jenkins.io/v1 fieldsType: FieldsV1 fieldsV1: f:metadata: f:annotations: .: {} f:lighthouse.jenkins-x.io/cloneURI: {} f:lighthouse.jenkins-x.io/job: {} f:pipeline.jenkins-x.io/traceID: {} f:labels: .: {} f:build: {} f:created-by-lighthouse: {} f:event-GUID: {} f:lighthouse.jenkins-x.io/baseSHA: {} f:lighthouse.jenkins-x.io/branch: {} f:lighthouse.jenkins-x.io/buildNum: {} f:lighthouse.jenkins-x.io/context: {} f:lighthouse.jenkins-x.io/id: {} f:lighthouse.jenkins-x.io/job: {} f:lighthouse.jenkins-x.io/lastCommitSHA: {} f:lighthouse.jenkins-x.io/refs.org: {} f:lighthouse.jenkins-x.io/refs.repo: {} f:lighthouse.jenkins-x.io/type: {} f:podName: {} f:tekton.dev/pipeline: {} f:spec: .: {} f:baseSHA: {} f:batchPipelineActivity: {} f:build: {} f:buildLogsUrl: {} f:completedTimestamp: {} f:context: {} f:gitBranch: {} f:gitOwner: {} f:gitRepository: {} f:gitUrl: {} f:message: {} f:pipeline: {} f:startedTimestamp: {} f:status: {} f:steps: {} manager: jx-build-controller operation: Update time: "2026-07-14T15:18:17Z" name: greencapitaltrade-flash-main-121 namespace: jx resourceVersion: "187802907" uid: 01d506f4-8a87-4e70-9f8f-cd1c09009e2e spec: baseSHA: 473c8f69b31a920709070de66b46dfb84766beb7 batchPipelineActivity: {} build: "121" buildLogsUrl: s3://logs-gct-prod-20260425045301534100000007/jenkins-x/logs/greencapitaltrade/flash/main/121.log completedTimestamp: "2026-07-14T15:13:02Z" context: release gitBranch: main gitOwner: greencapitaltrade gitRepository: flash gitUrl: https://github.com/greencapitaltrade/flash.git lastCommitMessage: | feat(flash): add shared Odoo text normalization utility and harden AssetTypesScreen save/display paths Implement client-side normalization for Odoo boolean-false fields. The Fury gateway sends `false` (boolean) when a char field is logically empty; this utility maps `false`, `null`, `undefined`, and `""` to `""` for safe display, while preserving literal string `"false"` (user-entered). Changes: - Add `packages/app/utils/odoo-text.ts` with `normalizeOdooText` and `trimForSave` utilities (pure, synchronous, O(1)) - Export both from `packages/app/utils/index.ts` - Integrate into `AssetTypesScreen.tsx`: - List rendering via `normalizeOdooText(type.description)` to prevent "false" text from appearing for empty descriptions - Edit prefill via `normalizeOdooText(type.description)` to prevent form from prefilling coerced junk - Save paths apply `trimForSave` to `formData.description` before mutation variables, so whitespace-only input is sent as `""` - Widen `AssetType.description` type to `string | null | false` to reflect real wire shape - Add comprehensive vitest tests in `packages/app/utils/__tests__/odoo-text.test.ts` covering all empty states, string preservation, and whitespace trimming (15 tests) All tests pass (177 tests in packages/app). Biome lint and format applied. Related: greencapitaltrade/flash#209 lastCommitSHA: 38aeb43269ad36b63d8198fe46ee91816b53556f message: 'Tasks Completed: 1 (Failed: 1, Cancelled 0), Skipped: 0' pipeline: greencapitaltrade/flash/main releaseNotesURL: https://github.com/greencapitaltrade/flash/releases/tag/v0.14.2 startedTimestamp: "2026-07-14T15:07:00Z" status: Failed steps: - kind: Stage stage: completedTimestamp: "2026-07-14T15:13:02Z" name: from build pack startedTimestamp: "2026-07-14T15:07:06Z" status: Failed steps: - completedTimestamp: "2026-07-14T15:07:14Z" name: Git Clone startedTimestamp: "2026-07-14T15:07:06Z" status: Succeeded - completedTimestamp: "2026-07-14T15:07:16Z" name: Next Version startedTimestamp: "2026-07-14T15:07:14Z" status: Succeeded - completedTimestamp: "2026-07-14T15:07:19Z" name: Jx Variables startedTimestamp: "2026-07-14T15:07:16Z" status: Succeeded - completedTimestamp: "2026-07-14T15:10:07Z" name: Build Yarn Install startedTimestamp: "2026-07-14T15:07:19Z" status: Succeeded - completedTimestamp: "2026-07-14T15:10:36Z" name: Next Build startedTimestamp: "2026-07-14T15:10:07Z" status: Succeeded - completedTimestamp: "2026-07-14T15:10:39Z" name: Check Registry startedTimestamp: "2026-07-14T15:10:36Z" status: Succeeded - completedTimestamp: "2026-07-14T15:12:45Z" name: Build Container Build startedTimestamp: "2026-07-14T15:10:40Z" status: Succeeded - completedTimestamp: "2026-07-14T15:12:56Z" name: Promote Changelog startedTimestamp: "2026-07-14T15:12:45Z" status: Succeeded - completedTimestamp: "2026-07-14T15:13:00Z" name: Promote Helm Release startedTimestamp: "2026-07-14T15:12:57Z" status: Succeeded - completedTimestamp: "2026-07-14T15:13:02Z" name: Promote Jx Promote startedTimestamp: "2026-07-14T15:13:01Z" status: Failed - completedTimestamp: "2026-07-14T15:13:02Z" name: Publish Org Kb startedTimestamp: "2026-07-14T15:07:30Z" status: Failed version: 0.14.2 status: {}