From cc04fe6763f4ba6d2de17eb168cfc53a4e48e0b6 Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Mon, 3 Aug 2026 16:10:31 -0300 Subject: [PATCH 01/23] chore(workspace): pin cli/core/tests gitlinks to origin tips Unblock full-workspace make gen after member checkouts advanced past the recorded gitlinks on 0.12.0-dev (cli/core/tests). flext-infra already includes mro-z75t member Beads ledger identity fix. Beads: mro-z75t Co-authored-by: Cursor --- flext-cli | 2 +- flext-core | 2 +- flext-tests | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/flext-cli b/flext-cli index 6fb2c2b16..6c2a1c34c 160000 --- a/flext-cli +++ b/flext-cli @@ -1 +1 @@ -Subproject commit 6fb2c2b164d253b3bd5e3ac738c43f7e241784bd +Subproject commit 6c2a1c34ce2c1494a626b6285ce1caff8b30a938 diff --git a/flext-core b/flext-core index a31e9bcdc..9236a21c4 160000 --- a/flext-core +++ b/flext-core @@ -1 +1 @@ -Subproject commit a31e9bcdc67adce488abba0d4cea54586d1a1755 +Subproject commit 9236a21c42b7435edbf46fa03d29dd1fa3582efb diff --git a/flext-tests b/flext-tests index f86b59697..65d481112 160000 --- a/flext-tests +++ b/flext-tests @@ -1 +1 @@ -Subproject commit f86b59697878304e2ac658c35605827a9a72409a +Subproject commit 65d4811121029612b242c62a589dda0310fefea9 From de4ef295164f1f1d408e8cead493a33fb7914b62 Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Mon, 3 Aug 2026 16:23:04 -0300 Subject: [PATCH 02/23] chore(workspace): land codegen projections and member gitlinks Pin all members after fleet projection regen (CI/Makefile/gitignore from flext-infra tip including mro-z75t ledger identity and submodule verify). Update root Makefile submodule verify and root .gitignore agent whitelist. Beads: mro-z75t Co-authored-by: Cursor --- .gitignore | 2 ++ Makefile | 14 ++++++++++---- flext-api | 2 +- flext-auth | 2 +- flext-cli | 2 +- flext-core | 2 +- flext-db-oracle | 2 +- flext-dbt-ldap | 2 +- flext-dbt-ldif | 2 +- flext-dbt-oracle | 2 +- flext-dbt-oracle-wms | 2 +- flext-grpc | 2 +- flext-infra | 2 +- flext-ldap | 2 +- flext-ldif | 2 +- flext-meltano | 2 +- flext-observability | 2 +- flext-oracle-oic | 2 +- flext-oracle-wms | 2 +- flext-plugin | 2 +- flext-quality | 2 +- flext-tap-ldap | 2 +- flext-tap-ldif | 2 +- flext-tap-oracle | 2 +- flext-tap-oracle-oic | 2 +- flext-tap-oracle-wms | 2 +- flext-target-ldap | 2 +- flext-target-ldif | 2 +- flext-target-oracle | 2 +- flext-target-oracle-oic | 2 +- flext-target-oracle-wms | 2 +- flext-tests | 2 +- flext-web | 2 +- 33 files changed, 43 insertions(+), 35 deletions(-) diff --git a/.gitignore b/.gitignore index 6b38e9107..91e4e665f 100644 --- a/.gitignore +++ b/.gitignore @@ -105,6 +105,8 @@ scripts/maintenance/ # BLOCK: AI/Agent Local Data (NEVER track these) .claude/* + +# WHITELIST: Agent skills owned by the workspace root !.agents/skills/ !.agents/skills/** diff --git a/Makefile b/Makefile index 5ca65f672..69d639877 100644 --- a/Makefile +++ b/Makefile @@ -639,10 +639,16 @@ _builtin_setup_submodules: exit 1; \ fi; \ need_fetch=1; \ - if git -C "$$child_root" rev-parse --verify "$$remote_ref" >/dev/null 2>&1 && \ - git -C "$$child_root" merge-base --is-ancestor "$$gitlink" HEAD && \ - git -C "$$child_root" merge-base --is-ancestor "$$remote_ref" HEAD; then \ - need_fetch=0; \ + if git -C "$$child_root" merge-base --is-ancestor "$$gitlink" HEAD; then \ + if git -C "$$child_root" rev-parse --verify "$$remote_ref" >/dev/null 2>&1; then \ + if git -C "$$child_root" merge-base --is-ancestor "$$remote_ref" HEAD; then \ + need_fetch=0; \ + fi; \ + else \ + # Pin is already present; origin tip may be absent on a shallow CI + # clone. Origin lag must not fail verify (setup never destroys). + need_fetch=0; \ + fi; \ fi; \ if [ "$$need_fetch" -eq 1 ]; then \ git -C "$$child_root" fetch --quiet origin "$$branch" || { \ diff --git a/flext-api b/flext-api index 994a74c50..1ecd215f5 160000 --- a/flext-api +++ b/flext-api @@ -1 +1 @@ -Subproject commit 994a74c50ffcc891ad0e5e392098c8860dd76eb4 +Subproject commit 1ecd215f5483a8da5343af8735784afbb7fc16d2 diff --git a/flext-auth b/flext-auth index 6e7004838..230a86465 160000 --- a/flext-auth +++ b/flext-auth @@ -1 +1 @@ -Subproject commit 6e7004838c83954b2033e688d26db60337722158 +Subproject commit 230a864657cd6dbc449f5db5cacb951646c3bb38 diff --git a/flext-cli b/flext-cli index 6c2a1c34c..8d79ba897 160000 --- a/flext-cli +++ b/flext-cli @@ -1 +1 @@ -Subproject commit 6c2a1c34ce2c1494a626b6285ce1caff8b30a938 +Subproject commit 8d79ba89787994ffc96592179d63f2df903f765c diff --git a/flext-core b/flext-core index 9236a21c4..e69eacb4e 160000 --- a/flext-core +++ b/flext-core @@ -1 +1 @@ -Subproject commit 9236a21c42b7435edbf46fa03d29dd1fa3582efb +Subproject commit e69eacb4eab058605cef32211e5e71d43aac1482 diff --git a/flext-db-oracle b/flext-db-oracle index b9b598643..94e90bc00 160000 --- a/flext-db-oracle +++ b/flext-db-oracle @@ -1 +1 @@ -Subproject commit b9b598643a4cf7c66a01f71b47d07aa17e65c61f +Subproject commit 94e90bc00a7d4326de0ce6f91907210e8e2bee05 diff --git a/flext-dbt-ldap b/flext-dbt-ldap index c6b703faf..4998ae0f3 160000 --- a/flext-dbt-ldap +++ b/flext-dbt-ldap @@ -1 +1 @@ -Subproject commit c6b703fafd2a66b2f194bc664336daff941bc179 +Subproject commit 4998ae0f37f9bbe55aa80d95075af3e699639c25 diff --git a/flext-dbt-ldif b/flext-dbt-ldif index ea5906710..dab8ea521 160000 --- a/flext-dbt-ldif +++ b/flext-dbt-ldif @@ -1 +1 @@ -Subproject commit ea590671031b637433820d525c2555dd32edc1ac +Subproject commit dab8ea5215700f4362aae01fee11f403659f6db3 diff --git a/flext-dbt-oracle b/flext-dbt-oracle index 896bab27d..dc1ceef0d 160000 --- a/flext-dbt-oracle +++ b/flext-dbt-oracle @@ -1 +1 @@ -Subproject commit 896bab27dcff4304078be172939897815c1bb736 +Subproject commit dc1ceef0d2b50842ac802c26ec3ddcca1719f095 diff --git a/flext-dbt-oracle-wms b/flext-dbt-oracle-wms index 8afbfc1b6..01a0379fe 160000 --- a/flext-dbt-oracle-wms +++ b/flext-dbt-oracle-wms @@ -1 +1 @@ -Subproject commit 8afbfc1b6fc87e6e01f3ef8cffe3669a983e96dc +Subproject commit 01a0379fe35b52e10be3c443c5690d2a738341cc diff --git a/flext-grpc b/flext-grpc index 92df97698..bb834f9bf 160000 --- a/flext-grpc +++ b/flext-grpc @@ -1 +1 @@ -Subproject commit 92df97698807e7e9af239a5f94243b0f939c6419 +Subproject commit bb834f9bf623611167c9486a9aca6fc8ad49ba6f diff --git a/flext-infra b/flext-infra index 64e7c32f3..eddb50af7 160000 --- a/flext-infra +++ b/flext-infra @@ -1 +1 @@ -Subproject commit 64e7c32f3f24e3ab2432524b49627b598f8b4556 +Subproject commit eddb50af73f82f3ee147be99360110da1ac883ae diff --git a/flext-ldap b/flext-ldap index 1e5269a66..a39662d87 160000 --- a/flext-ldap +++ b/flext-ldap @@ -1 +1 @@ -Subproject commit 1e5269a6656d258b78c3ce621e76ab5c70cd9a67 +Subproject commit a39662d87741abb0ebec85b5ec415363878b5794 diff --git a/flext-ldif b/flext-ldif index 8c4de9052..c0b860835 160000 --- a/flext-ldif +++ b/flext-ldif @@ -1 +1 @@ -Subproject commit 8c4de9052eb5126d6f2b2185219093e4e97db061 +Subproject commit c0b8608351e553caa0f32807c448e2b42e8eb5c6 diff --git a/flext-meltano b/flext-meltano index d7239bfca..fdb1b83ed 160000 --- a/flext-meltano +++ b/flext-meltano @@ -1 +1 @@ -Subproject commit d7239bfca1140a48da300836170795f20d058954 +Subproject commit fdb1b83ed71dab28e929494b64a1e55a1518fb71 diff --git a/flext-observability b/flext-observability index 9eae11aac..42777a5df 160000 --- a/flext-observability +++ b/flext-observability @@ -1 +1 @@ -Subproject commit 9eae11aac1192a66d7320ef9e935cb39920cb7d7 +Subproject commit 42777a5df24ec19a3e35762b65f9d1ebc0c601f8 diff --git a/flext-oracle-oic b/flext-oracle-oic index 5b155ca58..ede9d1366 160000 --- a/flext-oracle-oic +++ b/flext-oracle-oic @@ -1 +1 @@ -Subproject commit 5b155ca58bad6632830961107b67094f2489ead9 +Subproject commit ede9d1366663b796ced3970b73ae4c686844c9a2 diff --git a/flext-oracle-wms b/flext-oracle-wms index 768c71276..cb18247c0 160000 --- a/flext-oracle-wms +++ b/flext-oracle-wms @@ -1 +1 @@ -Subproject commit 768c712768a544a72718453e5bcbd1d6535ee16f +Subproject commit cb18247c063881a2a23084e214fefb04cfdac747 diff --git a/flext-plugin b/flext-plugin index 2da0b846c..23198f333 160000 --- a/flext-plugin +++ b/flext-plugin @@ -1 +1 @@ -Subproject commit 2da0b846c2e3966986b7ae5ecc3cb8278189a7c2 +Subproject commit 23198f3338639300c8096666ae3bae612400bb8f diff --git a/flext-quality b/flext-quality index 9ef632334..fce1e7ca9 160000 --- a/flext-quality +++ b/flext-quality @@ -1 +1 @@ -Subproject commit 9ef632334624486ab8792a574e806ac849d0cf60 +Subproject commit fce1e7ca955227bde637a6be7b357d22f7555c03 diff --git a/flext-tap-ldap b/flext-tap-ldap index a0cb7cd08..b7235681f 160000 --- a/flext-tap-ldap +++ b/flext-tap-ldap @@ -1 +1 @@ -Subproject commit a0cb7cd086a233227be7b4c9d13f4ad01c0e629b +Subproject commit b7235681fcf48c65cc0192ca36efad654abb61e2 diff --git a/flext-tap-ldif b/flext-tap-ldif index d6ddadd52..6c7865c98 160000 --- a/flext-tap-ldif +++ b/flext-tap-ldif @@ -1 +1 @@ -Subproject commit d6ddadd52aa3127f88169e95d8aed49e6c180a43 +Subproject commit 6c7865c98e77e4e5ee38285d69b8a2f1309cb611 diff --git a/flext-tap-oracle b/flext-tap-oracle index 759db33ce..db13de1e0 160000 --- a/flext-tap-oracle +++ b/flext-tap-oracle @@ -1 +1 @@ -Subproject commit 759db33cedc097857f0da3b7a0201433bf861de1 +Subproject commit db13de1e0794cdbbf8c42511ed314b58dceba5a0 diff --git a/flext-tap-oracle-oic b/flext-tap-oracle-oic index 58b3d126a..b25f96d22 160000 --- a/flext-tap-oracle-oic +++ b/flext-tap-oracle-oic @@ -1 +1 @@ -Subproject commit 58b3d126adb6cccd38324c64fc74446a4f17d814 +Subproject commit b25f96d2271f01cd13d9d1eaaa128b7e9866d3c0 diff --git a/flext-tap-oracle-wms b/flext-tap-oracle-wms index 9e7e0024d..947e40cb3 160000 --- a/flext-tap-oracle-wms +++ b/flext-tap-oracle-wms @@ -1 +1 @@ -Subproject commit 9e7e0024debfca2a0ba9a26e9b9ad3d7c2122872 +Subproject commit 947e40cb396bad6521df82295de8ffad7089af0d diff --git a/flext-target-ldap b/flext-target-ldap index c093d2503..b1c667d96 160000 --- a/flext-target-ldap +++ b/flext-target-ldap @@ -1 +1 @@ -Subproject commit c093d25036a2b13b4b9c35a45acfe636fa76dd64 +Subproject commit b1c667d96e2c357a8d0c38537450bae294c32306 diff --git a/flext-target-ldif b/flext-target-ldif index bc328c990..b9e9a1537 160000 --- a/flext-target-ldif +++ b/flext-target-ldif @@ -1 +1 @@ -Subproject commit bc328c9906192e418703c468f8ba037ca0c0454c +Subproject commit b9e9a153745efc6727b34dcdef07555f5ffd3815 diff --git a/flext-target-oracle b/flext-target-oracle index ef0b6d174..9a1d2cc5a 160000 --- a/flext-target-oracle +++ b/flext-target-oracle @@ -1 +1 @@ -Subproject commit ef0b6d174d0c00420ef506ac35dda266e15d2b2b +Subproject commit 9a1d2cc5a27a586f3bf82210301656105cd1ed05 diff --git a/flext-target-oracle-oic b/flext-target-oracle-oic index 721157c9a..97c6e6b95 160000 --- a/flext-target-oracle-oic +++ b/flext-target-oracle-oic @@ -1 +1 @@ -Subproject commit 721157c9a033d353df5311fa3bc4ea8fc5a376a0 +Subproject commit 97c6e6b955b8c56471863a2a3572e18426e88b8d diff --git a/flext-target-oracle-wms b/flext-target-oracle-wms index f575e6bcf..c8d99b6f9 160000 --- a/flext-target-oracle-wms +++ b/flext-target-oracle-wms @@ -1 +1 @@ -Subproject commit f575e6bcf659d0fb1ea29178e7342654c4bc4fda +Subproject commit c8d99b6f90f4f01d307737864cfa2edaa07ce6bc diff --git a/flext-tests b/flext-tests index 65d481112..1533442a7 160000 --- a/flext-tests +++ b/flext-tests @@ -1 +1 @@ -Subproject commit 65d4811121029612b242c62a589dda0310fefea9 +Subproject commit 1533442a7ca951a93d116a931ac8c1aac45355aa diff --git a/flext-web b/flext-web index bcf22c5a1..388f5b2e3 160000 --- a/flext-web +++ b/flext-web @@ -1 +1 @@ -Subproject commit bcf22c5a117368eaa7565954714539040e8979d1 +Subproject commit 388f5b2e3ab224477c0cf4316f83bbb22eb1446c From fbc65996310b570e6a92f9da4ead10c066d3aaf9 Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Mon, 3 Aug 2026 16:35:30 -0300 Subject: [PATCH 03/23] chore(workspace): pin flext-infra after CI WHAT=apply fixed point Includes mro-z75t ledger identity, CI concurrency, WHAT=apply allowlists, and pre-push hook projections required for idempotent full-workspace gen. Beads: mro-z75t Co-authored-by: Cursor --- flext-infra | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/flext-infra b/flext-infra index eddb50af7..e67dcaccc 160000 --- a/flext-infra +++ b/flext-infra @@ -1 +1 @@ -Subproject commit eddb50af73f82f3ee147be99360110da1ac883ae +Subproject commit e67dcacccf7a0be56ab1e3c3382976ed865f65e4 From eef499ca0c8243bc6801f8746849f4ae69cb2beb Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Mon, 3 Aug 2026 16:42:55 -0300 Subject: [PATCH 04/23] chore(workspace): land WHAT=apply verb projections + pre-commit/pre-push split Projections of committed flext-infra SSOT (advance gitlink e67dcaccc -> d4e5ca26c, already on origin/0.12.0-dev): - Makefile/ci.yml: add explicit 'apply' WHAT to fmt/fix/gen and the make WHAT=apply APPLY=Y CI convention; add CI concurrency guard (cancel-in-progress) so obsolete runs stop consuming runners. - .pre-commit-config.yaml: split the monolithic hook into fast pre-commit (fmt/fix) and expensive pre-push (gen/check/test). - install-git-hooks.sh: install pre-commit + pre-push entry points before the Beads guard chains, with post-install verification. - uv.lock: resync. Regeneration is a fixed point: the four managed surfaces are byte-identical before and after make gen APPLY=Y (md5 unchanged); gen only fails-closed on the uncommitted gitlink, resolved by this commit. --- .github/scripts/install-git-hooks.sh | 9 +++++++++ .github/workflows/ci.yml | 11 ++++++++--- .pre-commit-config.yaml | 17 ++++++++++++++--- Makefile | 20 +++++++++++++------- flext-infra | 2 +- uv.lock | 28 ++++++++++++++-------------- 6 files changed, 59 insertions(+), 28 deletions(-) mode change 100644 => 100755 .github/scripts/install-git-hooks.sh diff --git a/.github/scripts/install-git-hooks.sh b/.github/scripts/install-git-hooks.sh old mode 100644 new mode 100755 index 514839cee..3619a0605 --- a/.github/scripts/install-git-hooks.sh +++ b/.github/scripts/install-git-hooks.sh @@ -41,8 +41,13 @@ fail() { exit 1 } +command -v pre-commit >/dev/null 2>&1 || fail "pre-commit is not installed; install it before provisioning hooks" command -v bd >/dev/null 2>&1 || fail "bd is not installed; install Beads before provisioning hooks" +# Why: install both staged workflow entry points before Beads chains its guard. +_log "Installing pre-commit and pre-push hooks at ${WORKSPACE_ROOT}" +pre-commit install -t pre-commit -t pre-push >/dev/null \ + || fail "pre-commit hook installation failed" _log "Installing Beads git hooks (chained) at ${WORKSPACE_ROOT}" bd hooks install --chain >/dev/null || fail "bd hooks install --chain failed" @@ -96,5 +101,9 @@ grep -q 'BD_ALLOW_AGENT_COMMIT_TRAILERS' "${hook_path}" \ || fail "guard token missing after injection" grep -q 'bd hooks run prepare-commit-msg' "${hook_path}" \ || fail "bd delegation missing; refusing to leave hook without beads integration" +[ -f "$(git rev-parse --git-path hooks/pre-commit)" ] \ + || fail "pre-commit hook missing after provisioning" +[ -f "$(git rev-parse --git-path hooks/pre-push)" ] \ + || fail "pre-push hook missing after provisioning" echo "install-git-hooks: prepare-commit-msg guarded (BD_ALLOW_AGENT_COMMIT_TRAILERS opt-in)" diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 6638924be..1aae0a178 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -28,6 +28,11 @@ permissions: contents: read # End SECTION: permissions +# Why: one active run per workflow and branch prevents obsolete CI from consuming runners. +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + jobs: # === SECTION: ci job (managed) === # Source: template + config:github_actions.* @@ -57,13 +62,13 @@ jobs: run: make setup - name: gen (blocking) - run: make gen APPLY=Y + run: make gen WHAT=apply APPLY=Y - name: fmt (blocking) - run: make fmt APPLY=Y + run: make fmt WHAT=apply APPLY=Y - name: fix (blocking) - run: make fix APPLY=Y + run: make fix WHAT=apply APPLY=Y - name: check (blocking) run: make check diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index c78d38a5c..96548c487 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -2,11 +2,22 @@ repos: - repo: local hooks: - - id: flext-canonical-workflow - name: FLEXT canonical workflow + # Why: fast fixes run before each commit; expensive gates run before push. + - id: flext-pre-commit + name: FLEXT pre-commit workflow language: system entry: >- bash -eu -o pipefail -c - 'make gen APPLY=Y && make fmt APPLY=Y && make fix APPLY=Y && make check && make test' + 'make fmt APPLY=Y && make fix APPLY=Y' pass_filenames: false always_run: true + stages: [pre-commit] + - id: flext-pre-push + name: FLEXT pre-push workflow + language: system + entry: >- + bash -eu -o pipefail -c + 'make gen APPLY=Y && make check && make test' + pass_filenames: false + always_run: true + stages: [pre-push] diff --git a/Makefile b/Makefile index 69d639877..19b643ab7 100644 --- a/Makefile +++ b/Makefile @@ -117,14 +117,14 @@ _ALLOWED_WHATS_deps := check lock upgrade $(shell sed -n 's/^_custom_deps_\([a-z _ALLOWED_WHATS_build := artifacts $(shell sed -n 's/^_custom_build_\([a-z0-9_-]*\):.*/\1/p' "$(MAKEFILE_ROOT)/custom.mk" 2>/dev/null | sort -u | tr '\n' ' ') _ALLOWED_WHATS_check := all $(shell sed -n 's/^_custom_check_\([a-z0-9_-]*\):.*/\1/p' "$(MAKEFILE_ROOT)/custom.mk" 2>/dev/null | sort -u | tr '\n' ' ') _ALLOWED_WHATS_test := all $(shell sed -n 's/^_custom_test_\([a-z0-9_-]*\):.*/\1/p' "$(MAKEFILE_ROOT)/custom.mk" 2>/dev/null | sort -u | tr '\n' ' ') -_ALLOWED_WHATS_fmt := check all $(shell sed -n 's/^_custom_fmt_\([a-z0-9_-]*\):.*/\1/p' "$(MAKEFILE_ROOT)/custom.mk" 2>/dev/null | sort -u | tr '\n' ' ') -_ALLOWED_WHATS_fix := check all $(shell sed -n 's/^_custom_fix_\([a-z0-9_-]*\):.*/\1/p' "$(MAKEFILE_ROOT)/custom.mk" 2>/dev/null | sort -u | tr '\n' ' ') +_ALLOWED_WHATS_fmt := check all apply $(shell sed -n 's/^_custom_fmt_\([a-z0-9_-]*\):.*/\1/p' "$(MAKEFILE_ROOT)/custom.mk" 2>/dev/null | sort -u | tr '\n' ' ') +_ALLOWED_WHATS_fix := check all apply $(shell sed -n 's/^_custom_fix_\([a-z0-9_-]*\):.*/\1/p' "$(MAKEFILE_ROOT)/custom.mk" 2>/dev/null | sort -u | tr '\n' ' ') _ALLOWED_WHATS_run := default $(shell sed -n 's/^_custom_run_\([a-z0-9_-]*\):.*/\1/p' "$(MAKEFILE_ROOT)/custom.mk" 2>/dev/null | sort -u | tr '\n' ' ') _ALLOWED_WHATS_status := diagnostics $(shell sed -n 's/^_custom_status_\([a-z0-9_-]*\):.*/\1/p' "$(MAKEFILE_ROOT)/custom.mk" 2>/dev/null | sort -u | tr '\n' ' ') _ALLOWED_WHATS_docs := all generate fix audit build validate $(shell sed -n 's/^_custom_docs_\([a-z0-9_-]*\):.*/\1/p' "$(MAKEFILE_ROOT)/custom.mk" 2>/dev/null | sort -u | tr '\n' ' ') _ALLOWED_WHATS_clean := generated $(shell sed -n 's/^_custom_clean_\([a-z0-9_-]*\):.*/\1/p' "$(MAKEFILE_ROOT)/custom.mk" 2>/dev/null | sort -u | tr '\n' ' ') _ALLOWED_WHATS_release := status $(shell sed -n 's/^_custom_release_\([a-z0-9_-]*\):.*/\1/p' "$(MAKEFILE_ROOT)/custom.mk" 2>/dev/null | sort -u | tr '\n' ' ') -_ALLOWED_WHATS_gen := check all $(shell sed -n 's/^_custom_gen_\([a-z0-9_-]*\):.*/\1/p' "$(MAKEFILE_ROOT)/custom.mk" 2>/dev/null | sort -u | tr '\n' ' ') +_ALLOWED_WHATS_gen := check all apply $(shell sed -n 's/^_custom_gen_\([a-z0-9_-]*\):.*/\1/p' "$(MAKEFILE_ROOT)/custom.mk" 2>/dev/null | sort -u | tr '\n' ' ') _ALLOWED_WHATS_worktree := list add update remove $(shell sed -n 's/^_custom_worktree_\([a-z0-9_-]*\):.*/\1/p' "$(MAKEFILE_ROOT)/custom.mk" 2>/dev/null | sort -u | tr '\n' ' ') CHECK_GATES_ALLOWED := lint format pyrefly mypy pyright security markdown smells @@ -177,11 +177,11 @@ _DEFAULT_gen := check _DEFAULT_worktree := list _APPLY_WHAT_deps := upgrade -_APPLY_WHAT_fmt := all -_APPLY_WHAT_fix := all +_APPLY_WHAT_fmt := apply +_APPLY_WHAT_fix := apply _APPLY_WHAT_run := default _APPLY_WHAT_clean := generated -_APPLY_WHAT_gen := all +_APPLY_WHAT_gen := apply _APPLY_WHAT_worktree := update @@ -373,7 +373,7 @@ define _run_for_selected_projects done endef -.PHONY: $(PUBLIC_VERBS) $(SERIALIZED_TARGETS) _builtin_help_usage _builtin_setup_environment _builtin_deps_check _builtin_deps_lock _builtin_deps_upgrade _builtin_build_artifacts _builtin_check_all _builtin_test_all _builtin_fmt_check _builtin_fmt_all _builtin_fix_check _builtin_fix_all _builtin_run_default _builtin_status_diagnostics _builtin_docs_all _builtin_docs_generate _builtin_docs_fix _builtin_docs_audit _builtin_docs_build _builtin_docs_validate _builtin_clean_generated _builtin_release_status _builtin_gen_check _builtin_gen_all _builtin_worktree_list _builtin_worktree_add _builtin_worktree_update _builtin_worktree_remove +.PHONY: $(PUBLIC_VERBS) $(SERIALIZED_TARGETS) _builtin_help_usage _builtin_setup_environment _builtin_deps_check _builtin_deps_lock _builtin_deps_upgrade _builtin_build_artifacts _builtin_check_all _builtin_test_all _builtin_fmt_check _builtin_fmt_all _builtin_fmt_apply _builtin_fix_check _builtin_fix_all _builtin_fix_apply _builtin_run_default _builtin_status_diagnostics _builtin_docs_all _builtin_docs_generate _builtin_docs_fix _builtin_docs_audit _builtin_docs_build _builtin_docs_validate _builtin_clean_generated _builtin_release_status _builtin_gen_check _builtin_gen_all _builtin_gen_apply _builtin_worktree_list _builtin_worktree_add _builtin_worktree_update _builtin_worktree_remove $(filter-out setup $(SERIALIZED_VERBS),$(PUBLIC_VERBS)): $(call _dispatch,$@) @@ -783,6 +783,8 @@ _builtin_fmt_all: _builtin_require_environment $(call _require_apply) @$(WORKSPACE_ORCHESTRATE) --verb fmt $(WORKSPACE_PROJECT_ARGS) --make-arg "APPLY=Y" $(if $(filter 1,$(FAIL_FAST)),--fail-fast) +_builtin_fmt_apply: _builtin_fmt_all + _builtin_fix_check: @printf 'ERROR: make fix requires APPLY=Y\n' >&2; exit 2 @@ -790,6 +792,8 @@ _builtin_fix_all: _builtin_require_environment $(call _require_apply) @$(WORKSPACE_ORCHESTRATE) --verb fix $(WORKSPACE_PROJECT_ARGS) --make-arg "APPLY=Y" $(if $(filter 1,$(FAIL_FAST)),--fail-fast) +_builtin_fix_apply: _builtin_fix_all + _builtin_run_default: _builtin_require_environment @$(UV_RUN) $(PROJECT_NAME) $(ARGS) @@ -866,6 +870,8 @@ _builtin_gen_all: _builtin_require_environment @$(PROJECT_FLEXT_INFRA) deps modernize --workspace "$(PROJECT_ROOT)" --apply @$(PROJECT_FLEXT_INFRA) deps extra-paths --workspace "$(PROJECT_ROOT)" --apply +_builtin_gen_apply: _builtin_gen_all + _builtin_worktree_list: @$(PROJECT_FLEXT_INFRA) workspace worktree --workspace "$(WORKSPACE)" --operation list diff --git a/flext-infra b/flext-infra index e67dcaccc..d4e5ca26c 160000 --- a/flext-infra +++ b/flext-infra @@ -1 +1 @@ -Subproject commit e67dcacccf7a0be56ab1e3c3382976ed865f65e4 +Subproject commit d4e5ca26c5b9fafef47b96e6d4e1d63907a3a0c1 diff --git a/uv.lock b/uv.lock index b60b452e6..b240a6273 100644 --- a/uv.lock +++ b/uv.lock @@ -42,6 +42,15 @@ members = [ "flext-tests", "flext-web", ] +excludes = [ + { package = { name = "flext-cli" }, dependencies = ["flext-core"] }, + { package = { name = "flext-core" }, dependencies = ["flext-cli"] }, + { package = { name = "flext-infra" }, dependencies = ["flext-cli"] }, + { package = { name = "flext-infra" }, dependencies = ["flext-core"] }, + { package = { name = "flext-infra" }, dependencies = ["flext-tests"] }, + { package = { name = "flext-tests" }, dependencies = ["flext-core"] }, + { package = { name = "flext-tests" }, dependencies = ["flext-infra"] }, +] [[package]] name = "actionlint-py" @@ -598,19 +607,20 @@ wheels = [ [[package]] name = "code-review-graph" -version = "2.3.6" +version = "2.3.7" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "fastmcp" }, { name = "mcp" }, { name = "networkx" }, + { name = "pyyaml" }, { name = "tree-sitter" }, { name = "tree-sitter-language-pack" }, { name = "watchdog" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/1c/29/002537342840a09e90961e1c2eee33b87225720173bbbb4aa7096e0d3719/code_review_graph-2.3.6.tar.gz", hash = "sha256:047d4d8a13f0515c5a9ad73716af1e04d5833637d6ddcc4f1b780171b8702105", size = 354942, upload-time = "2026-06-10T18:30:20.525Z" } +sdist = { url = "https://files.pythonhosted.org/packages/02/b3/e202da5d2bc15975cb94153f071474be9d35121b76475c87ade7381a392a/code_review_graph-2.3.7.tar.gz", hash = "sha256:5a44440fd87607761b2fb06341aaab48ad1767c14b3eb98aa7ee2e357da867b8", size = 455605, upload-time = "2026-07-18T00:34:12.608Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/66/c7/01cc7fa8cc574f26118ce3050d8e01d4303d673bf439b1d8d3e009287605/code_review_graph-2.3.6-py3-none-any.whl", hash = "sha256:001c8604d0e22a1b8aa61a24824ab25ef2db81d5ef8d3770a3de0f62704845c7", size = 334774, upload-time = "2026-06-10T18:30:18.815Z" }, + { url = "https://files.pythonhosted.org/packages/f3/8f/2df3fcca285b489d195706b09cefda3e57e7158185cb83905200d7b27199/code_review_graph-2.3.7-py3-none-any.whl", hash = "sha256:12196dce3e673bdec7fba97ae5c4dff7589adee73a721374f62efae76e0fdd88", size = 426655, upload-time = "2026-07-18T00:34:11.05Z" }, ] [package.optional-dependencies] @@ -1544,7 +1554,7 @@ dev = [ { name = "bandit", specifier = ">=1.8" }, { name = "black", specifier = ">=25.1" }, { name = "blacken-docs", specifier = ">=1.19" }, - { name = "code-review-graph", extras = ["all", "embeddings"], specifier = "==2.3.6" }, + { name = "code-review-graph", extras = ["all", "embeddings"], specifier = "==2.3.7" }, { name = "codespell", specifier = ">=2.3" }, { name = "deptry", specifier = ">=0.23" }, { name = "django-stubs", specifier = ">=6.0.6" }, @@ -2068,7 +2078,6 @@ dependencies = [ { name = "cachetools" }, { name = "click" }, { name = "defusedxml" }, - { name = "flext-core" }, { name = "jinja2" }, { name = "jsonschema" }, { name = "openpyxl" }, @@ -2325,7 +2334,6 @@ dev = [ { name = "django-stubs" }, { name = "factory-boy" }, { name = "faker" }, - { name = "flext-cli" }, { name = "flext-infra" }, { name = "flext-tests" }, { name = "hypothesis" }, @@ -3691,8 +3699,6 @@ source = { editable = "flext-infra" } dependencies = [ { name = "defusedxml" }, { name = "filelock" }, - { name = "flext-cli" }, - { name = "flext-core" }, { name = "gitpython" }, { name = "libcst" }, { name = "mkdocs" }, @@ -3718,7 +3724,6 @@ dev = [ { name = "django-stubs" }, { name = "factory-boy" }, { name = "faker" }, - { name = "flext-tests" }, { name = "hypothesis" }, { name = "isort" }, { name = "matplotlib-stubs" }, @@ -7558,8 +7563,6 @@ dependencies = [ { name = "factory-boy" }, { name = "faker" }, { name = "flext-cli" }, - { name = "flext-core" }, - { name = "flext-infra" }, { name = "hypothesis" }, { name = "pytest" }, { name = "pytest-benchmark" }, @@ -7577,9 +7580,6 @@ dependencies = [ ] [package.dev-dependencies] -codegen = [ - { name = "flext-infra" }, -] dev = [ { name = "actionlint-py" }, { name = "autoflake" }, From 3fa35cc85701a8d1132d558ff42639c3378d381a Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Mon, 3 Aug 2026 16:46:25 -0300 Subject: [PATCH 05/23] chore(make): regenerate Makefile to fixed point (escape comment continuations) make gen APPLY=Y from the prior commit corrected a defect the adopted WIP carried: two shell comments inside a backslash-continued recipe block lacked their own trailing backslash, breaking line continuation. Regeneration escapes them; a second make gen is now byte-identical. --- Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index 19b643ab7..48d072cef 100644 --- a/Makefile +++ b/Makefile @@ -645,8 +645,8 @@ _builtin_setup_submodules: need_fetch=0; \ fi; \ else \ - # Pin is already present; origin tip may be absent on a shallow CI - # clone. Origin lag must not fail verify (setup never destroys). + # Pin is already present; origin tip may be absent on a shallow CI \ + # clone. Origin lag must not fail verify (setup never destroys). \ need_fetch=0; \ fi; \ fi; \ From 84605d051e39f745b10684e71c24a3ef89951798 Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Mon, 3 Aug 2026 16:57:10 -0300 Subject: [PATCH 06/23] chore(workspace): advance 30 member gitlinks to pushed tips Adopted staged gitlink advances left by the codegen lane. Every target SHA verified present on its member remote (0 unpushed of 30) before landing, so a fresh clone resolves all submodules. --- flext-api | 2 +- flext-auth | 2 +- flext-cli | 2 +- flext-core | 2 +- flext-db-oracle | 2 +- flext-dbt-ldap | 2 +- flext-dbt-ldif | 2 +- flext-dbt-oracle | 2 +- flext-dbt-oracle-wms | 2 +- flext-grpc | 2 +- flext-infra | 2 +- flext-ldap | 2 +- flext-ldif | 2 +- flext-meltano | 2 +- flext-observability | 2 +- flext-oracle-oic | 2 +- flext-oracle-wms | 2 +- flext-plugin | 2 +- flext-quality | 2 +- flext-tap-ldap | 2 +- flext-tap-ldif | 2 +- flext-tap-oracle | 2 +- flext-tap-oracle-oic | 2 +- flext-tap-oracle-wms | 2 +- flext-target-ldap | 2 +- flext-target-ldif | 2 +- flext-target-oracle | 2 +- flext-target-oracle-oic | 2 +- flext-tests | 2 +- flext-web | 2 +- 30 files changed, 30 insertions(+), 30 deletions(-) diff --git a/flext-api b/flext-api index 1ecd215f5..3fa45b93f 160000 --- a/flext-api +++ b/flext-api @@ -1 +1 @@ -Subproject commit 1ecd215f5483a8da5343af8735784afbb7fc16d2 +Subproject commit 3fa45b93f4f52f5e0e9b43e90806e5b205327931 diff --git a/flext-auth b/flext-auth index 230a86465..2fd7e7060 160000 --- a/flext-auth +++ b/flext-auth @@ -1 +1 @@ -Subproject commit 230a864657cd6dbc449f5db5cacb951646c3bb38 +Subproject commit 2fd7e70609e1ceef34eddc79cd0d83127c8e3a28 diff --git a/flext-cli b/flext-cli index 8d79ba897..3eba0e2d3 160000 --- a/flext-cli +++ b/flext-cli @@ -1 +1 @@ -Subproject commit 8d79ba89787994ffc96592179d63f2df903f765c +Subproject commit 3eba0e2d3ce739051497a896eeead7124f40d9bc diff --git a/flext-core b/flext-core index e69eacb4e..612833360 160000 --- a/flext-core +++ b/flext-core @@ -1 +1 @@ -Subproject commit e69eacb4eab058605cef32211e5e71d43aac1482 +Subproject commit 612833360508a28837d7c8b2d3074bc8eda6db74 diff --git a/flext-db-oracle b/flext-db-oracle index 94e90bc00..9a2d26f3d 160000 --- a/flext-db-oracle +++ b/flext-db-oracle @@ -1 +1 @@ -Subproject commit 94e90bc00a7d4326de0ce6f91907210e8e2bee05 +Subproject commit 9a2d26f3d492221b9680b94c8db03ca198d960f1 diff --git a/flext-dbt-ldap b/flext-dbt-ldap index 4998ae0f3..17a7dfbd9 160000 --- a/flext-dbt-ldap +++ b/flext-dbt-ldap @@ -1 +1 @@ -Subproject commit 4998ae0f37f9bbe55aa80d95075af3e699639c25 +Subproject commit 17a7dfbd9ccba9fe78ec3131bd8527428d0cce4c diff --git a/flext-dbt-ldif b/flext-dbt-ldif index dab8ea521..4056e4b75 160000 --- a/flext-dbt-ldif +++ b/flext-dbt-ldif @@ -1 +1 @@ -Subproject commit dab8ea5215700f4362aae01fee11f403659f6db3 +Subproject commit 4056e4b75f8edbe67562c60afd1fcde19122ebd3 diff --git a/flext-dbt-oracle b/flext-dbt-oracle index dc1ceef0d..4ce7ebe05 160000 --- a/flext-dbt-oracle +++ b/flext-dbt-oracle @@ -1 +1 @@ -Subproject commit dc1ceef0d2b50842ac802c26ec3ddcca1719f095 +Subproject commit 4ce7ebe05901d1d264c41eccd19367340458bdbd diff --git a/flext-dbt-oracle-wms b/flext-dbt-oracle-wms index 01a0379fe..d587b5741 160000 --- a/flext-dbt-oracle-wms +++ b/flext-dbt-oracle-wms @@ -1 +1 @@ -Subproject commit 01a0379fe35b52e10be3c443c5690d2a738341cc +Subproject commit d587b574159b64f960658c6195f0f20e3e2f2761 diff --git a/flext-grpc b/flext-grpc index bb834f9bf..cb526037a 160000 --- a/flext-grpc +++ b/flext-grpc @@ -1 +1 @@ -Subproject commit bb834f9bf623611167c9486a9aca6fc8ad49ba6f +Subproject commit cb526037a1e6bb5e405ecf95f5ba461b78cad198 diff --git a/flext-infra b/flext-infra index d4e5ca26c..0bc7d7604 160000 --- a/flext-infra +++ b/flext-infra @@ -1 +1 @@ -Subproject commit d4e5ca26c5b9fafef47b96e6d4e1d63907a3a0c1 +Subproject commit 0bc7d76046e47dccbbd151874fc6221a95ff1dfe diff --git a/flext-ldap b/flext-ldap index a39662d87..8eaf28122 160000 --- a/flext-ldap +++ b/flext-ldap @@ -1 +1 @@ -Subproject commit a39662d87741abb0ebec85b5ec415363878b5794 +Subproject commit 8eaf2812296f5e1cd57af052c708801012d8a11f diff --git a/flext-ldif b/flext-ldif index c0b860835..0e6d35cef 160000 --- a/flext-ldif +++ b/flext-ldif @@ -1 +1 @@ -Subproject commit c0b8608351e553caa0f32807c448e2b42e8eb5c6 +Subproject commit 0e6d35cefbe5dc9492e12a0fa0a58d2cd57cce78 diff --git a/flext-meltano b/flext-meltano index fdb1b83ed..ca56dfd55 160000 --- a/flext-meltano +++ b/flext-meltano @@ -1 +1 @@ -Subproject commit fdb1b83ed71dab28e929494b64a1e55a1518fb71 +Subproject commit ca56dfd55c89de3b2abb740c9d8e0366035610b6 diff --git a/flext-observability b/flext-observability index 42777a5df..f3a5ff7dd 160000 --- a/flext-observability +++ b/flext-observability @@ -1 +1 @@ -Subproject commit 42777a5df24ec19a3e35762b65f9d1ebc0c601f8 +Subproject commit f3a5ff7dd7a3f3d368bb2578699c093f02e40581 diff --git a/flext-oracle-oic b/flext-oracle-oic index ede9d1366..5abb72109 160000 --- a/flext-oracle-oic +++ b/flext-oracle-oic @@ -1 +1 @@ -Subproject commit ede9d1366663b796ced3970b73ae4c686844c9a2 +Subproject commit 5abb721091b7e3012b81df6800110ae873129217 diff --git a/flext-oracle-wms b/flext-oracle-wms index cb18247c0..5665a7fc2 160000 --- a/flext-oracle-wms +++ b/flext-oracle-wms @@ -1 +1 @@ -Subproject commit cb18247c063881a2a23084e214fefb04cfdac747 +Subproject commit 5665a7fc212050f658f51c419dc1c01113c523e9 diff --git a/flext-plugin b/flext-plugin index 23198f333..30d745ade 160000 --- a/flext-plugin +++ b/flext-plugin @@ -1 +1 @@ -Subproject commit 23198f3338639300c8096666ae3bae612400bb8f +Subproject commit 30d745adef782ac7b26503674c0b78ef05463929 diff --git a/flext-quality b/flext-quality index fce1e7ca9..287b664ac 160000 --- a/flext-quality +++ b/flext-quality @@ -1 +1 @@ -Subproject commit fce1e7ca955227bde637a6be7b357d22f7555c03 +Subproject commit 287b664acd58b1f6552876dfc83e73e52eeff67f diff --git a/flext-tap-ldap b/flext-tap-ldap index b7235681f..9b07b0fc4 160000 --- a/flext-tap-ldap +++ b/flext-tap-ldap @@ -1 +1 @@ -Subproject commit b7235681fcf48c65cc0192ca36efad654abb61e2 +Subproject commit 9b07b0fc4f3bb71914097acad069732544ff25eb diff --git a/flext-tap-ldif b/flext-tap-ldif index 6c7865c98..b4cd9a90e 160000 --- a/flext-tap-ldif +++ b/flext-tap-ldif @@ -1 +1 @@ -Subproject commit 6c7865c98e77e4e5ee38285d69b8a2f1309cb611 +Subproject commit b4cd9a90e10eddfecb4575f8b0ff4dd11aed572d diff --git a/flext-tap-oracle b/flext-tap-oracle index db13de1e0..197d2c53e 160000 --- a/flext-tap-oracle +++ b/flext-tap-oracle @@ -1 +1 @@ -Subproject commit db13de1e0794cdbbf8c42511ed314b58dceba5a0 +Subproject commit 197d2c53eb1b7d777aa69f1fa73fce29cde9c5e1 diff --git a/flext-tap-oracle-oic b/flext-tap-oracle-oic index b25f96d22..7b590aa01 160000 --- a/flext-tap-oracle-oic +++ b/flext-tap-oracle-oic @@ -1 +1 @@ -Subproject commit b25f96d2271f01cd13d9d1eaaa128b7e9866d3c0 +Subproject commit 7b590aa0188645ea250093d7a34c492f8ee73c39 diff --git a/flext-tap-oracle-wms b/flext-tap-oracle-wms index 947e40cb3..4292f7a6d 160000 --- a/flext-tap-oracle-wms +++ b/flext-tap-oracle-wms @@ -1 +1 @@ -Subproject commit 947e40cb396bad6521df82295de8ffad7089af0d +Subproject commit 4292f7a6d8568f6d78ff6eb875a4aa48af25b7e1 diff --git a/flext-target-ldap b/flext-target-ldap index b1c667d96..ba59b821f 160000 --- a/flext-target-ldap +++ b/flext-target-ldap @@ -1 +1 @@ -Subproject commit b1c667d96e2c357a8d0c38537450bae294c32306 +Subproject commit ba59b821f33cc820ead1519c79e1a75cc793cc4d diff --git a/flext-target-ldif b/flext-target-ldif index b9e9a1537..de0760a98 160000 --- a/flext-target-ldif +++ b/flext-target-ldif @@ -1 +1 @@ -Subproject commit b9e9a153745efc6727b34dcdef07555f5ffd3815 +Subproject commit de0760a9806c5a18ee29901ea42f49c1ce492e16 diff --git a/flext-target-oracle b/flext-target-oracle index 9a1d2cc5a..3d560bdf4 160000 --- a/flext-target-oracle +++ b/flext-target-oracle @@ -1 +1 @@ -Subproject commit 9a1d2cc5a27a586f3bf82210301656105cd1ed05 +Subproject commit 3d560bdf4c614f128544a44e64b59baf10139bff diff --git a/flext-target-oracle-oic b/flext-target-oracle-oic index 97c6e6b95..6b3391d66 160000 --- a/flext-target-oracle-oic +++ b/flext-target-oracle-oic @@ -1 +1 @@ -Subproject commit 97c6e6b955b8c56471863a2a3572e18426e88b8d +Subproject commit 6b3391d66a889e409ce40e44f330d515d57411a7 diff --git a/flext-tests b/flext-tests index 1533442a7..1691bc89c 160000 --- a/flext-tests +++ b/flext-tests @@ -1 +1 @@ -Subproject commit 1533442a7ca951a93d116a931ac8c1aac45355aa +Subproject commit 1691bc89cb216037122db3802151c700857ef1ec diff --git a/flext-web b/flext-web index 388f5b2e3..77db7362e 160000 --- a/flext-web +++ b/flext-web @@ -1 +1 @@ -Subproject commit 388f5b2e3ab224477c0cf4316f83bbb22eb1446c +Subproject commit 77db7362efd40346a89d2815e425c5b60a3e3df0 From 049db2edc3fc341e5bf183c7afd3cd4c7da7694c Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Mon, 3 Aug 2026 17:00:38 -0300 Subject: [PATCH 07/23] chore(workspace): pin flext-infra after TOC and CI fragment landings Advance the flext-infra gitlink through docs TOC placement and shared private-submodule workflow fragment merges needed for gen fixed-point. Co-authored-by: Cursor --- flext-infra | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/flext-infra b/flext-infra index 0bc7d7604..4a7b5b089 160000 --- a/flext-infra +++ b/flext-infra @@ -1 +1 @@ -Subproject commit 0bc7d76046e47dccbbd151874fc6221a95ff1dfe +Subproject commit 4a7b5b089354fd29d620476af562bc6ef1d7cfe2 From 4b75f423d54a3b80d6f5626467a6911b573fcd2f Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Mon, 3 Aug 2026 17:01:29 -0300 Subject: [PATCH 08/23] wip: automated snapshot before gitflow audit (2026-08-02) (#70) Co-authored-by: Marlon Costa --- docs/GOVERNANCE.md | 2 +- .../003-workspace-tooling-hub-distribution.md | 14 +- ...ttings-constants-templates-schemas-ssot.md | 11 +- ...ied-project-standardization-via-codegen.md | 306 ++++++++---------- docs/architecture/adr/README.md | 3 +- .../config-ssot-migration-plan.md | 19 +- docs/architecture/ecosystem-coordination.md | 22 +- docs/standards/documentation.md | 16 +- docs/ways-of-working/worker-lane-contract.md | 2 +- 9 files changed, 177 insertions(+), 218 deletions(-) diff --git a/docs/GOVERNANCE.md b/docs/GOVERNANCE.md index 84825b2d3..a5cd4199c 100644 --- a/docs/GOVERNANCE.md +++ b/docs/GOVERNANCE.md @@ -82,7 +82,7 @@ only after it passes: ```bash make check PROJECT= CHECK_GATES= -make val VALIDATE_SCOPE=workspace +make codegen WHAT=check PROJECT= ``` All FLEXT validation uses the root Make dispatcher; never run bare `ruff`, diff --git a/docs/architecture/adr/003-workspace-tooling-hub-distribution.md b/docs/architecture/adr/003-workspace-tooling-hub-distribution.md index 7520562bb..0beef08e8 100644 --- a/docs/architecture/adr/003-workspace-tooling-hub-distribution.md +++ b/docs/architecture/adr/003-workspace-tooling-hub-distribution.md @@ -26,15 +26,11 @@ owner of transitive FLEXT provenance. ### 1. A typed manifest owns repository topology -Each orchestrated workspace has one validated manifest under `config/`. It -declares members, exclusions, repository URL, branch, relative checkout path, -role, profile, and lifecycle state. A typed repository catalog covers: - -- FLEXT repositories at `https://github.com/flext-sh/.git` on - `0.12.0-dev`; -- Cosmos repositories at `https://github.com/datacosmos-br/.git` on - `main`; -- explicitly declared standalone repositories, with no sibling discovery. +Each consumer has one validated `config/workspace.yaml`. It declares its own +members, independent projects, exclusions with justification, repository URLs, +branches, relative checkout paths, topology profile, capabilities, and command +discovery roots. No catalog in `flext-infra` duplicates consumer identities or +topology. Submodule metadata, generated dependency groups, Makefiles, and inventories are derived from that manifest. No other file may independently declare workspace diff --git a/docs/architecture/adr/005-config-settings-constants-templates-schemas-ssot.md b/docs/architecture/adr/005-config-settings-constants-templates-schemas-ssot.md index 976600e06..f8912019c 100644 --- a/docs/architecture/adr/005-config-settings-constants-templates-schemas-ssot.md +++ b/docs/architecture/adr/005-config-settings-constants-templates-schemas-ssot.md @@ -71,11 +71,12 @@ implementations in `flext-infra` are invalid. ### 3. Repository conformance is data-driven -The typed repository catalog and each workspace manifest under `config/` are -the only topology inputs. `flext-infra codegen conform` maps them into typed -models including repository references, workspace specification, Make -specification, uv environment plan, conform request, codegen plan, and codegen -result. +Each consumer's validated `config/workspace.yaml` is its only topology input. +`flext-infra` owns generic schemas, profiles, capabilities, policies, and +templates, but no external product catalog. `flext-infra codegen conform` maps +the manifest into typed models including repository references, workspace +specification, Make specification, uv environment plan, conform request, +codegen plan, and codegen result. Project creation and existing-project conformance call that same pipeline. The pipeline supports only the three Make profiles defined by ADR-004 and uses one diff --git a/docs/architecture/adr/010-unified-project-standardization-via-codegen.md b/docs/architecture/adr/010-unified-project-standardization-via-codegen.md index fcd21d2bc..0507bded9 100644 --- a/docs/architecture/adr/010-unified-project-standardization-via-codegen.md +++ b/docs/architecture/adr/010-unified-project-standardization-via-codegen.md @@ -1,30 +1,25 @@ -# ADR-010 — Unified project standardization (Make, scripts, tests, structure) via flext-infra codegen and flext-tests +# ADR-010 — Unified project standardization via flext-infra codegen and flext-tests -- **Status:** Accepted (planning) — targets the `0.20.0-dev` line +- **Status:** Accepted — split delivery across `0.12.0-dev` and `0.20.0-dev` - **Date:** 2026-07-18 -- **Target line:** FLEXT `0.20.0-dev` (early development and planning). This is a - forward standardization contract; it does not retro-fit the `0.12.0-dev` - release line. -- **Scope:** One common, generated base for every project the workspace - coordinates — root workspace, internal FLEXT packages, loose internal projects - (treated as independent), and external/independent applications (`dcdoc`, - DataOP, DcBackup) — covering Make verbs, scripts, tests, `.venv`/mise/direnv - setup, `pyproject.toml`, package `**init**.py` facades, directory layout, and - canonical module/class/prefix naming for `src`, `tests`, `examples`, `scripts`. -- **Tracking:** ecosystem-standardization epic and children (labelled - `branch:0.20.0-dev`). +- **Amended:** 2026-07-28 +- **Target lines:** `0.12.0-dev` receives the release-blocking generic + manifest, capability, Make, codegen, and external-compatibility contract. + Facade, naming, runtime-directory, layout, and structural-enforcement + refactors remain forward-only on `0.20.0-dev`. +- **Tracking:** `mro-p68a`, external-compatibility gate `mro-p68a.12`, and the + forward ecosystem-standardization epic. - **Complements:** ADR-003 (topology/profiles), ADR-004 (Make/codegen SSOT ownership), ADR-005 (config/settings/constants/templates/schemas SSOT and facade layering), ADR-007 (operational kernel/CLI/transactional conform), ADR-008 (neutral consumer boundaries), ADR-009 (ecosystem coordination). -This ADR does not create a new owner. It unifies and hardens the existing -`flext-infra codegen` pipeline (SSOT `codegen.yaml` with `tooling.yaml`) and the -`flext-tests` shared base, so one generated base works for every project forever. +This ADR does not create a new owner. It separates the compatibility contract +needed to stabilize `flext-infra 0.12.0` from unrelated forward architecture. ## Context -The workspace already has the right owners: +The workspace already has the right generic owners: - `flext-infra codegen conform` is the sole conformance/generation interface (ADR-004), rendering managed files from `codegen.yaml`/`tooling.yaml` and the @@ -32,172 +27,137 @@ The workspace already has the right owners: `project/base/{Makefile,pyproject.toml,.mise.toml,python-version,custom.mk}.j2`, `module_skeleton.py.j2`, `static_package_init.py.j2`, `lazy_init_root.py.j2`). - `flext-tests` owns the shared test base and generic Make test behavior. -- ADR-005 fixes facade layering `c -> t -> p -> m -> u` and the one-owner rule - for `constants.py`/`utilities.py`/`api.py`/`base.py`/`_settings.py`/`_config.py` - and their `_constants/*`, `_utilities/*` private namespaces. +- each consumer owns its topology and capabilities in its local + `config/workspace.yaml`; +- `flext-tests` owns shared Python test behavior, but it does not own Make + routing. -What is missing is not another tool. It is three things: a single validated standard that -every project — including loose internal projects and external applications — is -measured against; a validation-first rollout that reports drift before it -rewrites; and enforcement so the base cannot silently diverge again. +The former text treated all standardization as `0.20.0-dev` work and presented +`boot`, `fmt`, and `val` beside the ADR-004 grammar. That contradicted the +release requirement: an isolated `flext-infra` artifact must provide one real, +generic Make/codegen surface to all release consumers before `0.12.0` can ship. ## Decision -Adopt one generated, enforced standardization base owned by `flext-infra` -codegen + `flext-tests`, applied to every project through three ordered phases. - -### 1. Single standardization surface (SSOT) - -The standard is data, not prose. It lives only in: - -- `flext-infra/.../config/codegen.yaml` — `toolchain`, `profiles`, `make.verbs`, - `managed_files`, `scaffold`, `templates`, `repositories`, `workspaces`. -- `flext-infra/.../config/tooling.yaml` — tool versions and tool config - (ruff, pyrefly, pyright, mypy, pytest) rendered into `pyproject.toml`. -- `flext-tests` — shared fixtures, `conftest` base, and generic test verbs. - -No project hand-maintains these facts. Any per-project need is expressed through -validated `custom.mk` handlers (ADR-004) or declared config, never a fork of the -base. - -### 2. Common verb surface for every project - -Every project — root, member, loose internal (independent), and external — -exposes the same public Make verbs from `base_verbs.mk`: `help`, `boot`, -`build`, `check`, `fmt`, `scan`, `docs`, `docs-serve`, `test`, `val`, and -`fix-enforcement`, plus the operational verbs defined by ADR-004. Loose internal -projects use the `standalone` profile and behave exactly like independent -projects: they own only themselves and never inspect neighbors (ADR-003). - -`setup`/`boot` provisions the identical environment everywhere: mise-pinned -Python `3.13` and uv `0.9.21`, `.venv` via uv, direnv (`.envrc`), and -`pyproject.toml`/`.mise.toml`/`.python-version` rendered from the toolchain SSOT. - -### 3. Canonical structure, facades, and naming (measured, then enforced) - -The generated base fixes one structure for `src`, `tests`, `examples`, -`scripts`: - -- Package facades: `constants.py`, `typings.py`, `protocols.py`, `models.py`, - `utilities.py`, `settings.py`, `config.py`, exposing `c/t/p/m/u` (+ operational - `r/e/x/h/d/s`); private declarations in `_constants/*`, `_typings/*`, - `_protocols/*`, `_models/*`, `_utilities/*`, `_settings.py`, `_config.py`. -- Composition: `api.py` is the thin MRO facade; `base.py` holds the shared MRO - base and Result helpers; `cli.py` holds declarative routes. -- `**init**.py` are generated from `static_package_init.py.j2` / - `lazy_init_root.py.j2` — never hand-written re-export sprawl. -- Naming is one scheme, rendered/validated by codegen: class prefix per project - namespace (e.g. `Flext`, `DataOP`, `DcBackup`, - `DcdocService`), sub-prefixes per concern, canonical subdirectory names, - and module names matching the facet they own. - -Naming and structure are first reported as drift, then rewritten, then enforced -(phases below). No parallel/legacy structural branch survives a green cycle. - -### 3a. Namespaced runtime directories via `settings` - -Every project resolves its filesystem roots only through `settings`, never -through ad-hoc `Path.home()`/`os.environ` derivations. `flext-core` -`FlextSettings` (layer-0) exposes five XDG-aware directories: - -| Field | Linux default | Purpose | -| --- | --- | --- | -| `work_dir` | `$XDG_CACHE_HOME` or `~/.cache/` | scratch/cache | -| `data_dir` | `$XDG_DATA_HOME` or `~/.local/share/` | durable data | -| `config_dir` | `$XDG_CONFIG_HOME` or `~/.config/` | configuration | -| `state_dir` | `$XDG_STATE_HOME` or `~/.local/state/` | state | -| `runtime_dir` | `$XDG_RUNTIME_DIR/` or `/run` | ephemeral sockets/PIDs | - -macOS and Windows map to their native equivalents (`~/Library/...`, -`%LOCALAPPDATA%`/`%APPDATA%`). Consumers read `settings.data_dir` etc.; deriving -these paths by hand is drift that Phase 3 enforcement rejects. - -**`` is the consuming application's namespace, not the library's.** The -segment `` MUST be the namespace of the running application — the project -that uses `flext-core` as its entrypoint — and is shared by every library and -function call at runtime. When `flext-tap-oracle` runs, all directories are -`~/.cache/flext-tap-oracle/…`, `~/.config/flext-tap-oracle/…`, etc., even when a -`flext-cli`, `flext-meltano`, or `flext-core` function resolves a path -internally. A library MUST NEVER use its own name (`flext-cli`) for the -directory segment; it uses the running app's namespace. - -**Resolution rule (owned by `flext-core` `FlextSettings`).** Two things stay -separate: - -- Normal settings fields keep the per-subclass namespaced pattern (each project - reads its own `settings` singleton and its own namespaced sections). -- The directory properties (`cache_dir`, `work_dir`, `data_dir`, `config_dir`, - `state_dir`, `runtime_dir`) are NOT per-subclass. They ALWAYS resolve from the - **root project namespace held by the settings root singleton** — a single - shared source — never from the `env_prefix` of the subclass that happens to - access them. A `flext-cli`/`flext-meltano`/`flext-core` call under application - X therefore returns `~/./X/…`; a library MUST NEVER use its own name for - the directory segment. - -Namespace precedence for that root value, registration being **optional**: - -1. `FlextSettings.set_app_namespace("flext-tap-oracle")` — an entrypoint may - declare the application identity once (first-wins). -2. `FLEXT_APP_NAMESPACE` — environment override when no bootstrap ran. -3. **Root project namespace (default)** — otherwise the running project's own - namespace prevails; registration is never mandatory. - -Per-application overrides use `__DIR` -(e.g. `FLEXT_TAP_ORACLE_WORK_DIR`); namespaces that are not a single safe path -segment are rejected. - -**Implementation ownership.** The `flext-core` `FlextSettings` change that binds -the `*_dir` resolution to the settings root singleton is implemented by the -`flext-core` maintenance lane, not by this standardization work. This ADR only -fixes the contract every consumer must follow; consumer adoption and enforcement -are tracked in Beads. - -### 4. Three ordered phases (same strategy as ADR-020/008/009) - -1. **Validation-first.** `flext-infra codegen conform --mode check` plus a - standardization audit reports every drift (missing verbs, non-standard - layout, wrong facade/`**init**`, naming violations, toolchain/pyproject - drift, non-standard tests/scripts/examples) across all projects, with zero - writes. Output is evidence, not a rewrite. -2. **Refactoring.** `flext-infra codegen conform --mode apply` (and the - `flext-tests` base) migrates each project to the standard in bounded, - ownership-scoped batches, deletion-first (ADR-005 §5), one cut per concern, - no compatibility shim, each batch validated (`ruff`/`pyrefly`/`pytest`). -3. **Enforcement.** The standard becomes declarative enforcement data in - `flext-infra/config/enforcement/*.yaml` evaluated by the rope-semantic engine - (ADR-005 §6), so drift fails a gate instead of returning silently. Every - project runs the same `check`/`val` gates. - -### 5. Applicability to independent and external projects - -Loose internal projects and external applications (`dcdoc`, DataOP, DcBackup) -consume the same generated base through the `standalone` profile and their own -`flext-infra` invocation. This never changes the dependency law of ADR-008/009: -`flext-infra` is invoked as external tooling and never imported by an -application, and no `flext-*` package depends on an application. Standardization -is generation and validation, not runtime composition. +Adopt one generated base with two explicitly separated delivery scopes. + +### 1. The `0.12.0-dev` stabilization subset is release-blocking + +`0.12.0-dev` receives all of the following before release: + +- a consumer-owned, typed `config/workspace.yaml`; +- separate topology (`workspace-root`, `workspace-member`, or `standalone`) and + declared capabilities (Python, Go, Node/frontend, Helm/GitOps, Docker, + documents/content, and scripts); +- declared command-discovery roots and validated discovery from + `scripts//.*` metadata; +- one generated Make surface and one deterministic codegen transaction; +- proof from an isolated candidate wheel across all 51 executable consumer + surfaces. + +The consumer manifest is the sole topology authority. `flext-infra` +`codegen.yaml` and schemas contain only generic profiles, capability contracts, +defaults, policies, and templates. They must not contain AI Hub, Cosmos, or +other consumer identities, branches, members, or exclusions, and conformance +must not compare a local manifest with a duplicated product catalog. + +### 2. The public Make grammar is singular + +Every surface exposes `help` plus exactly the twelve ADR-004 verbs: + +```text +setup deps build check test format run status docs clean release codegen +``` + +`make WHAT=help` lists the choices actually discovered for that +consumer. `PROJECT`, `CHECK_GATES`, `FILE`, `MATCH`, `FAIL_FAST`, and `ARGS` +have uniform meanings. `APPLY=Y` is the only authorization for mutation. +Unknown verbs, selectors, projects, and capabilities fail precisely. A declared +but non-applicable operation reports typed non-applicability; it never becomes +empty success or an implicit fallback. + +Capabilities provide concrete handlers only for applicable operations. +`custom.mk` is limited to private `_custom__` and `pre/post-*` +hooks. It cannot define public targets, replace environment ownership, or patch +the generator. Legacy `boot`, `fmt`, and `val` aliases and competing Taskfile or +handwritten dispatchers are removed after each consumer completes its cutover. + +### 3. Conformance is artifact-isolated and reaches a fixed point + +The release candidate is built with `uv build --no-sources`, installed into an +empty environment, and executed without a source checkout, `PYTHONPATH`, +editable link, or workspace cache. It must support ordinary clones, worktrees, +workspace roots, attached members, and standalone repositories. + +For every selected surface: + +- check mode performs no writes; +- apply requires `APPLY=Y` and writes the complete validated selection; +- `check -> apply -> check` converges, and the second check has no diff; +- staged output is validated by its real Make consumer before any live + activation, upload, service restart, or cluster rollout. + +### 4. The external compatibility matrix is a predecessor gate + +The 51 executable surfaces are: + +- FLEXT root plus 31 projects; +- `.ai-hub`; +- `cosmos-main` root plus 12 independent subprojects; +- `cosmos-docgen` root plus four document subprojects. + +Every surface passes `make help`, `make status`, applicable +`make WHAT=help`, and `make codegen WHAT=check`. Capability-specific +gates then exercise Python, Go, Node/frontend, serialized Helm/GitOps, +Docker/config/scripts, or document build/stage behavior. Upload and deployment +paths remain dry-run unless separately authorized with `APPLY=Y`; the release +gate never activates AI Hub services, uploads to Google Drive, or rolls out a +cluster. + +`flext-infra 0.12.0` release preparation and publication remain blocked until +this matrix is green against the exact candidate artifact SHA. Representative +profiles also run on Ubuntu, macOS, and Windows. Helm is always serialized. + +### 5. Forward-only `0.20.0-dev` architecture + +The historical broader standardization decision remains accepted for +`0.20.0-dev`. It covers: + +- canonical package facades, MRO composition, and generated `__init__.py`; +- module, class, and namespace naming; +- canonical `src`, `tests`, `examples`, and `scripts` layout; +- application-namespaced runtime directories and `FlextSettings` root-singleton + resolution; +- declarative structural and naming enforcement. + +None of these forward refactors is a prerequisite for `0.12.0`. Their existing +planning and drift reports remain historical evidence for the `0.20.0-dev` +lanes and must not be used to expand the stabilization release. ## Consequences -- One base setup (venv/mise/direnv/pyproject) and one verb surface work in every - project, forever, from a single SSOT. -- Structure, facades, `**init**.py`, and naming are generated and enforced, not - re-invented per project. -- Drift is caught before it lands; the base cannot silently fork again. -- Independent and external projects get the same standard without any reverse - dependency. +- The 0.12 release proves generic generation against real consumers instead of + a `flext-infra` product catalog. +- Topology and technological capability are independent typed dimensions. +- Every consumer has the same public grammar without pretending every operation + applies to every stack. +- Forward architecture remains sequenced on `0.20.0-dev`, without being pulled + into release stabilization. ## Verification contract -1. `flext-infra codegen conform --mode check --scope all` is green (byte-idempotent) - on the standardized set; every managed file matches the rendered SSOT. -2. The standardization audit reports zero drift for verbs, layout, facades, - `**init**.py`, toolchain/pyproject, and naming on enforced projects. -3. Enforcement rules exist as `flext-infra/config/enforcement/*.yaml` data and a - naming/structure violation fails `check`/`val`. -4. `flext-tests` base yields identical generic `test` behavior across projects. -5. Independent/external projects pass the same gates with no `flext-*` - reverse dependency (ADR-008 gate stays green). +1. Valid, invalid, incomplete, and unknown-capability manifests fail or pass + through the typed local-manifest contract as specified. +2. Command discovery has no duplicated `WHAT` catalog, and every public help or + invalid-selection path reports the real discovered surface. +3. An isolated wheel proves no source-checkout dependency and reaches the + codegen fixed point. +4. All 51 Linux surfaces and representative cross-platform profiles pass their + applicable public Make gates with no introduced warning, skip, suppression, + fallback, or stale generated output. +5. Exact artifact SHA, consumer SHA, command, working directory, exit code, + decisive output, and public QA evidence are recorded in `mro-p68a.12`. +6. Forward-only structural gates remain tracked on `0.20.0-dev`. ## References diff --git a/docs/architecture/adr/README.md b/docs/architecture/adr/README.md index 269cde591..4ddb5623e 100644 --- a/docs/architecture/adr/README.md +++ b/docs/architecture/adr/README.md @@ -23,6 +23,7 @@ portal. - [ADR-009: Ecosystem coordination and reusable-library evaluation](009-ecosystem-coordination-and-library-evaluation.md) — _Accepted (planning, `0.20.0-dev`)_ - [ADR-010: Unified project standardization (Make, scripts, tests, structure) via - codegen](010-unified-project-standardization-via-codegen.md) — _Accepted (planning, `0.20.0-dev`)_ + codegen](010-unified-project-standardization-via-codegen.md) — _Accepted (0.12 + compatibility subset; forward architecture on `0.20.0-dev`)_ New ADRs should be added only when they represent a real architectural decision with an owning implementation path. diff --git a/docs/architecture/config-ssot-migration-plan.md b/docs/architecture/config-ssot-migration-plan.md index 54c3423c7..1b701e92b 100644 --- a/docs/architecture/config-ssot-migration-plan.md +++ b/docs/architecture/config-ssot-migration-plan.md @@ -26,7 +26,8 @@ epic `mro-wkii.17`. | Surface | Sole owner | | --- | --- | -| repository catalog and workspace manifest | validated data under `flext-infra/config/` and each workspace `config/` | +| consumer topology and capabilities | each consumer's validated `config/workspace.yaml` | +| generic manifest schema, defaults, profiles, and capability policies | `flext-infra/config/` | | universal config/schema/template/file/process operations | public `u.Cli.*` facades in `flext-cli` | | typed conformance plan, enforcement, and transaction | `flext-infra codegen conform` | | generated Makefiles | the single `flext-infra` template layer | @@ -41,7 +42,8 @@ epic `mro-wkii.17`. process, and output primitives before adding consumer logic. 3. Define the typed repository, workspace, Make, uv environment, request, plan, and result models through the FLEXT facades. -4. Move catalog and manifest rows into validated config plus matching schemas. +4. Validate each consumer-owned manifest against the generic schema; do not + duplicate consumer identities or topology inside `flext-infra`. 5. Implement the single `codegen conform` check/apply transaction by composing the existing project generator and migration capabilities. 6. Make project creation emit the initial manifest and invoke conformance. @@ -95,17 +97,18 @@ Any missing, extra, or unclassified member is a hard inventory failure. 1. Conform the Cosmos root as `workspace-root`. 2. Conform Charts and GitOps as members that also pass in independent clones. -3. Mark content-only repositories explicitly and remove invalid inventory - entries rather than treating them as package members. +3. Declare each repository's real Go, Node/frontend, Helm/GitOps, Docker, + config, document/content, or script capabilities; do not use + `content-only` as a substitute for executable metadata. 4. Preserve real chart release behavior behind the canonical commit and push checks, including the clean-commit prerequisite. ## Phase 5 — Conform standalone repositories -Conform `.ai-hub`, Algar migration, GrupoNOS Meltano Native, and Cosmos Docgen -as explicit standalone manifests. Classify each real capability under the -canonical Make responsibility, delete competing automation surfaces, and test -from temporary clones with no sibling directories. +Conform `.ai-hub`, `cosmos-docgen`, and its four document subprojects through +their explicit manifests. Classify each real capability under the canonical +Make responsibility, delete competing automation surfaces, and test from +temporary clones with no sibling directories. ## Phase 6 — Fleet acceptance and deletion proof diff --git a/docs/architecture/ecosystem-coordination.md b/docs/architecture/ecosystem-coordination.md index 1ef2ab8fc..559c72ab6 100644 --- a/docs/architecture/ecosystem-coordination.md +++ b/docs/architecture/ecosystem-coordination.md @@ -7,9 +7,11 @@ stay consistent with each owner-local ADR. It coordinates internal FLEXT packages and the independent external applications and platforms; it never makes an external repository a FLEXT dependency. -**Target line:** FLEXT `0.20.0-dev` (early development and planning). This is a -forward planning contract for `0.20.0-dev`; it does not retro-fit the -`0.12.0-dev` release line. Every coordination Bead is labelled +**Target line:** FLEXT `0.20.0-dev` (early development and planning) owns this +document's broad ecosystem and application-architecture work. The only +`0.12.0-dev` subset is ADR-010's release-blocking manifest, capability, Make, +codegen, and external-compatibility contract; it does not import the remaining +coordination scope. Forward coordination Beads stay labelled `branch:0.20.0-dev`. ## Projects and owners @@ -121,15 +123,11 @@ evidence. ## Project standardization (ADR-010) -All projects — root, internal members, loose internal (independent), and -external applications — share one generated base owned by `flext-infra` codegen -with `flext-tests`: identical Make verbs, `.venv`/mise/direnv/`pyproject` setup, -directory layout, `__init__.py` facades, `c/t/p/m/u` facade files and -`_constants/*`/`_utilities/*` private namespaces, `api.py`/`base.py`/ -`_settings.py`/`_config.py`, and canonical module/class/prefix naming for `src`, -`tests`, `examples`, `scripts`. Rollout is validation-first, then refactoring, -then declarative enforcement. SSOT: `codegen.yaml` + `tooling.yaml` + -`flext-tests`. See +The release-blocking `0.12.0-dev` subset standardizes only the consumer-owned +manifest, declared capabilities, twelve-verb Make grammar, deterministic +codegen, and external compatibility proof. The broader directory layout, +facades, naming, runtime-directory behavior, and structural enforcement remain +part of this document's forward `0.20.0-dev` coordination scope. See [ADR-010](adr/010-unified-project-standardization-via-codegen.md). ## Extraction gate for any new `flext-*` diff --git a/docs/standards/documentation.md b/docs/standards/documentation.md index d7e872350..f43ebb820 100644 --- a/docs/standards/documentation.md +++ b/docs/standards/documentation.md @@ -13,10 +13,10 @@ it is added to the flext-infra engine, never beside it. The canonical entry point is the `docs` verb of the root `Makefile`: ```bash -make docs DOCS_PHASE=generate PROJECT=flext-core APPLY=Y # regenerate derived docs (mutating) -make docs DOCS_PHASE=build PROJECT=flext-core # mkdocs strict build -> .reports/docs/site -make docs DOCS_PHASE=validate PROJECT=flext-core # link/nav/reference validation -make docs DOCS_PHASE=audit PROJECT=flext-core # docstring + content audit +make docs WHAT=generate PROJECT=flext-core APPLY=Y # regenerate derived docs (mutating) +make docs WHAT=build PROJECT=flext-core # strict build -> .reports/docs/site +make docs WHAT=validate PROJECT=flext-core # link/nav/reference validation +make docs WHAT=audit PROJECT=flext-core # docstring + content audit ``` - `generate` is the only mutating phase and **requires `APPLY=Y`**; without it @@ -93,7 +93,7 @@ The workspace documentation site is published to **docs.flext.sh**: - **Facts, not vibes.** Version numbers, test counts, and capability claims in docs must trace to the project metadata or a command output. When a fact cannot be verified cheaply, omit it and point at the gate that produces it - (`make val`, `make check`, `make docs DOCS_PHASE=audit`). + (`make codegen WHAT=check`, `make check`, `make docs WHAT=audit`). - **One home per topic.** A subject has exactly one canonical page; everything else links to it. No duplicated standards across `docs/`, `README.md`, and skills — pointers only. @@ -103,9 +103,9 @@ The workspace documentation site is published to **docs.flext.sh**: A documentation change is complete only with: ```bash -make docs DOCS_PHASE=build # strict build, 0 errors -make docs DOCS_PHASE=validate # links/nav green -make docs DOCS_PHASE=audit # no new placeholder/stale findings +make docs WHAT=build # strict build, 0 errors +make docs WHAT=validate # links/nav green +make docs WHAT=audit # no new placeholder/stale findings ``` and, for generator or template changes under `flext-infra`, the scoped project diff --git a/docs/ways-of-working/worker-lane-contract.md b/docs/ways-of-working/worker-lane-contract.md index 42cdf079e..b53b13f9f 100644 --- a/docs/ways-of-working/worker-lane-contract.md +++ b/docs/ways-of-working/worker-lane-contract.md @@ -32,7 +32,7 @@ the dispatcher: make check CHECK_GATES=lint,format,pyrefly make check PROJECT= CHECK_GATES=pyright,mypy make test PROJECT= -make val WHAT=workspace +make codegen WHAT=check PROJECT= ``` Run the narrowest changed-scope gate first; widen only after it passes. From dcd2b4ac1b7e29db6c479d156644781d74223e8f Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Mon, 3 Aug 2026 17:02:43 -0300 Subject: [PATCH 09/23] chore(workspace): pin flext-infra after fragment include-path fix Advance flext-infra gitlink to the Jinja _fragments include resolution and docs private-submodule coverage needed for gen fixed-point. Co-authored-by: Cursor --- flext-infra | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/flext-infra b/flext-infra index 4a7b5b089..43ef0b5b6 160000 --- a/flext-infra +++ b/flext-infra @@ -1 +1 @@ -Subproject commit 4a7b5b089354fd29d620476af562bc6ef1d7cfe2 +Subproject commit 43ef0b5b690b94b3ea5d2c48ff9db90b4f6a14c6 From 77ce75549031a300817b2d44ac6182a0b9b873d4 Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Mon, 3 Aug 2026 17:04:28 -0300 Subject: [PATCH 10/23] chore(workspace): repin 29 member gitlinks to origin tips Member repos advanced after PR 84/85; refresh recorded gitlinks so make gen WHAT=all APPLY=Y passes the workspace gitlink guard. Co-authored-by: Cursor --- flext-api | 2 +- flext-auth | 2 +- flext-cli | 2 +- flext-db-oracle | 2 +- flext-dbt-ldap | 2 +- flext-dbt-ldif | 2 +- flext-dbt-oracle | 2 +- flext-dbt-oracle-wms | 2 +- flext-grpc | 2 +- flext-ldap | 2 +- flext-ldif | 2 +- flext-meltano | 2 +- flext-observability | 2 +- flext-oracle-oic | 2 +- flext-oracle-wms | 2 +- flext-plugin | 2 +- flext-quality | 2 +- flext-tap-ldap | 2 +- flext-tap-ldif | 2 +- flext-tap-oracle | 2 +- flext-tap-oracle-oic | 2 +- flext-tap-oracle-wms | 2 +- flext-target-ldap | 2 +- flext-target-ldif | 2 +- flext-target-oracle | 2 +- flext-target-oracle-oic | 2 +- flext-target-oracle-wms | 2 +- flext-tests | 2 +- flext-web | 2 +- 29 files changed, 29 insertions(+), 29 deletions(-) diff --git a/flext-api b/flext-api index 3fa45b93f..5bd518239 160000 --- a/flext-api +++ b/flext-api @@ -1 +1 @@ -Subproject commit 3fa45b93f4f52f5e0e9b43e90806e5b205327931 +Subproject commit 5bd5182391dc865f285c618b3ee6b4df6dbedc5e diff --git a/flext-auth b/flext-auth index 2fd7e7060..42f58e6ba 160000 --- a/flext-auth +++ b/flext-auth @@ -1 +1 @@ -Subproject commit 2fd7e70609e1ceef34eddc79cd0d83127c8e3a28 +Subproject commit 42f58e6bae8e23bc0d261184286e396a67ecaf2c diff --git a/flext-cli b/flext-cli index 3eba0e2d3..6ee07ab28 160000 --- a/flext-cli +++ b/flext-cli @@ -1 +1 @@ -Subproject commit 3eba0e2d3ce739051497a896eeead7124f40d9bc +Subproject commit 6ee07ab289653483cf6165796e5b8efb585ae619 diff --git a/flext-db-oracle b/flext-db-oracle index 9a2d26f3d..203387faf 160000 --- a/flext-db-oracle +++ b/flext-db-oracle @@ -1 +1 @@ -Subproject commit 9a2d26f3d492221b9680b94c8db03ca198d960f1 +Subproject commit 203387faf5f8393a99fafde6579516bbc06484a4 diff --git a/flext-dbt-ldap b/flext-dbt-ldap index 17a7dfbd9..4786fa147 160000 --- a/flext-dbt-ldap +++ b/flext-dbt-ldap @@ -1 +1 @@ -Subproject commit 17a7dfbd9ccba9fe78ec3131bd8527428d0cce4c +Subproject commit 4786fa1474a346bc28c761819d7d9f25189b49cd diff --git a/flext-dbt-ldif b/flext-dbt-ldif index 4056e4b75..7423cdcc2 160000 --- a/flext-dbt-ldif +++ b/flext-dbt-ldif @@ -1 +1 @@ -Subproject commit 4056e4b75f8edbe67562c60afd1fcde19122ebd3 +Subproject commit 7423cdcc2e45acd0d3fb32eb15777845c9d1dbfa diff --git a/flext-dbt-oracle b/flext-dbt-oracle index 4ce7ebe05..a6f458f36 160000 --- a/flext-dbt-oracle +++ b/flext-dbt-oracle @@ -1 +1 @@ -Subproject commit 4ce7ebe05901d1d264c41eccd19367340458bdbd +Subproject commit a6f458f368b3b72e12afbc63869a956c3cd60182 diff --git a/flext-dbt-oracle-wms b/flext-dbt-oracle-wms index d587b5741..8065210e4 160000 --- a/flext-dbt-oracle-wms +++ b/flext-dbt-oracle-wms @@ -1 +1 @@ -Subproject commit d587b574159b64f960658c6195f0f20e3e2f2761 +Subproject commit 8065210e42bf686d92ab7fe206905b74b51bb5b2 diff --git a/flext-grpc b/flext-grpc index cb526037a..26b0ca0fe 160000 --- a/flext-grpc +++ b/flext-grpc @@ -1 +1 @@ -Subproject commit cb526037a1e6bb5e405ecf95f5ba461b78cad198 +Subproject commit 26b0ca0fe084f13097ec815eb6f3c0c1a8b2ef90 diff --git a/flext-ldap b/flext-ldap index 8eaf28122..da31d276a 160000 --- a/flext-ldap +++ b/flext-ldap @@ -1 +1 @@ -Subproject commit 8eaf2812296f5e1cd57af052c708801012d8a11f +Subproject commit da31d276a689dfd9131a904989ea0cada1cae0f3 diff --git a/flext-ldif b/flext-ldif index 0e6d35cef..efb30129b 160000 --- a/flext-ldif +++ b/flext-ldif @@ -1 +1 @@ -Subproject commit 0e6d35cefbe5dc9492e12a0fa0a58d2cd57cce78 +Subproject commit efb30129b6c409ebbb1064ee72716a267c43350a diff --git a/flext-meltano b/flext-meltano index ca56dfd55..9861ab29a 160000 --- a/flext-meltano +++ b/flext-meltano @@ -1 +1 @@ -Subproject commit ca56dfd55c89de3b2abb740c9d8e0366035610b6 +Subproject commit 9861ab29a7dd41a6554060935e49f10d2c7fee3d diff --git a/flext-observability b/flext-observability index f3a5ff7dd..38b817bd1 160000 --- a/flext-observability +++ b/flext-observability @@ -1 +1 @@ -Subproject commit f3a5ff7dd7a3f3d368bb2578699c093f02e40581 +Subproject commit 38b817bd1a7c56b05c376040229a643fecdf4190 diff --git a/flext-oracle-oic b/flext-oracle-oic index 5abb72109..19249d69e 160000 --- a/flext-oracle-oic +++ b/flext-oracle-oic @@ -1 +1 @@ -Subproject commit 5abb721091b7e3012b81df6800110ae873129217 +Subproject commit 19249d69e2dc4e485f04a93625a65cf2797c8350 diff --git a/flext-oracle-wms b/flext-oracle-wms index 5665a7fc2..ca978150e 160000 --- a/flext-oracle-wms +++ b/flext-oracle-wms @@ -1 +1 @@ -Subproject commit 5665a7fc212050f658f51c419dc1c01113c523e9 +Subproject commit ca978150e517127b27f92c99486782bc1fdc23bb diff --git a/flext-plugin b/flext-plugin index 30d745ade..bce610436 160000 --- a/flext-plugin +++ b/flext-plugin @@ -1 +1 @@ -Subproject commit 30d745adef782ac7b26503674c0b78ef05463929 +Subproject commit bce6104360ffe782e86d6806db6691c45b356469 diff --git a/flext-quality b/flext-quality index 287b664ac..e0db70f03 160000 --- a/flext-quality +++ b/flext-quality @@ -1 +1 @@ -Subproject commit 287b664acd58b1f6552876dfc83e73e52eeff67f +Subproject commit e0db70f034e6d3c5913e15a125e895e5b636d70a diff --git a/flext-tap-ldap b/flext-tap-ldap index 9b07b0fc4..a40a79fbe 160000 --- a/flext-tap-ldap +++ b/flext-tap-ldap @@ -1 +1 @@ -Subproject commit 9b07b0fc4f3bb71914097acad069732544ff25eb +Subproject commit a40a79fbeb3ce747942dde399ae8871b50dd4176 diff --git a/flext-tap-ldif b/flext-tap-ldif index b4cd9a90e..71f1513f9 160000 --- a/flext-tap-ldif +++ b/flext-tap-ldif @@ -1 +1 @@ -Subproject commit b4cd9a90e10eddfecb4575f8b0ff4dd11aed572d +Subproject commit 71f1513f97f05a70a399df340548293f77de4149 diff --git a/flext-tap-oracle b/flext-tap-oracle index 197d2c53e..7369e1b9c 160000 --- a/flext-tap-oracle +++ b/flext-tap-oracle @@ -1 +1 @@ -Subproject commit 197d2c53eb1b7d777aa69f1fa73fce29cde9c5e1 +Subproject commit 7369e1b9c8739e2d20c4f85b5a954611be8577c0 diff --git a/flext-tap-oracle-oic b/flext-tap-oracle-oic index 7b590aa01..501ed0c37 160000 --- a/flext-tap-oracle-oic +++ b/flext-tap-oracle-oic @@ -1 +1 @@ -Subproject commit 7b590aa0188645ea250093d7a34c492f8ee73c39 +Subproject commit 501ed0c37c46d4bbec34eb67819262b84c7266dd diff --git a/flext-tap-oracle-wms b/flext-tap-oracle-wms index 4292f7a6d..796a87f22 160000 --- a/flext-tap-oracle-wms +++ b/flext-tap-oracle-wms @@ -1 +1 @@ -Subproject commit 4292f7a6d8568f6d78ff6eb875a4aa48af25b7e1 +Subproject commit 796a87f226221076908a867a1b01db0168194510 diff --git a/flext-target-ldap b/flext-target-ldap index ba59b821f..5a025eba3 160000 --- a/flext-target-ldap +++ b/flext-target-ldap @@ -1 +1 @@ -Subproject commit ba59b821f33cc820ead1519c79e1a75cc793cc4d +Subproject commit 5a025eba3b52e17358858600cadc40b7b7adf7e6 diff --git a/flext-target-ldif b/flext-target-ldif index de0760a98..38933fc24 160000 --- a/flext-target-ldif +++ b/flext-target-ldif @@ -1 +1 @@ -Subproject commit de0760a9806c5a18ee29901ea42f49c1ce492e16 +Subproject commit 38933fc243a53fa9f8bf5a2152df4ae7723a1e24 diff --git a/flext-target-oracle b/flext-target-oracle index 3d560bdf4..8b8708198 160000 --- a/flext-target-oracle +++ b/flext-target-oracle @@ -1 +1 @@ -Subproject commit 3d560bdf4c614f128544a44e64b59baf10139bff +Subproject commit 8b87081989cf29dc0ba0bac3043beab374aa014e diff --git a/flext-target-oracle-oic b/flext-target-oracle-oic index 6b3391d66..cb24cb3d3 160000 --- a/flext-target-oracle-oic +++ b/flext-target-oracle-oic @@ -1 +1 @@ -Subproject commit 6b3391d66a889e409ce40e44f330d515d57411a7 +Subproject commit cb24cb3d3b90c5d7365bc3b00c9e0e745bbdfeff diff --git a/flext-target-oracle-wms b/flext-target-oracle-wms index c8d99b6f9..db020093e 160000 --- a/flext-target-oracle-wms +++ b/flext-target-oracle-wms @@ -1 +1 @@ -Subproject commit c8d99b6f90f4f01d307737864cfa2edaa07ce6bc +Subproject commit db020093e752493c22d55898f9e11d87d73f0ef5 diff --git a/flext-tests b/flext-tests index 1691bc89c..9dc51fe45 160000 --- a/flext-tests +++ b/flext-tests @@ -1 +1 @@ -Subproject commit 1691bc89cb216037122db3802151c700857ef1ec +Subproject commit 9dc51fe45e495c56bfb35b02b1a46d4972fbf063 diff --git a/flext-web b/flext-web index 77db7362e..ce2a33a70 160000 --- a/flext-web +++ b/flext-web @@ -1 +1 @@ -Subproject commit 77db7362efd40346a89d2815e425c5b60a3e3df0 +Subproject commit ce2a33a70cbbf4aea076fff7687ab701bc4ff644 From 2528581566ece20af830e284f6c2f11cf81c4450 Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Mon, 3 Aug 2026 17:17:41 -0300 Subject: [PATCH 11/23] chore(workspace): land CI workflow fixed-point and pin member tips Adopt make gen projections for root workflows/gitignore and advance all member gitlinks after CI/docs fixed-point landings, including flext-infra endif whitespace trim. Co-authored-by: Cursor --- .github/ci-template/ci.yml | 10 +++++----- .github/workflows/ci.yml | 1 + .github/workflows/docs.yml | 26 +++++++++++++++----------- .github/workflows/release.yml | 14 +++++++------- .gitignore | 4 +--- flext-api | 2 +- flext-auth | 2 +- flext-cli | 2 +- flext-core | 2 +- flext-db-oracle | 2 +- flext-dbt-ldap | 2 +- flext-dbt-ldif | 2 +- flext-dbt-oracle | 2 +- flext-dbt-oracle-wms | 2 +- flext-grpc | 2 +- flext-infra | 2 +- flext-ldap | 2 +- flext-ldif | 2 +- flext-meltano | 2 +- flext-observability | 2 +- flext-oracle-oic | 2 +- flext-oracle-wms | 2 +- flext-plugin | 2 +- flext-quality | 2 +- flext-tap-ldap | 2 +- flext-tap-ldif | 2 +- flext-tap-oracle | 2 +- flext-tap-oracle-oic | 2 +- flext-tap-oracle-wms | 2 +- flext-target-ldap | 2 +- flext-target-ldif | 2 +- flext-target-oracle | 2 +- flext-target-oracle-oic | 2 +- flext-target-oracle-wms | 2 +- flext-tests | 2 +- flext-web | 2 +- 36 files changed, 60 insertions(+), 57 deletions(-) diff --git a/.github/ci-template/ci.yml b/.github/ci-template/ci.yml index 81aa47991..61e6b907f 100644 --- a/.github/ci-template/ci.yml +++ b/.github/ci-template/ci.yml @@ -1,7 +1,7 @@ # Generated by `flext-infra codegen conform` for flext — DO NOT EDIT. name: CI -on: +"on": pull_request: push: branches: @@ -18,23 +18,23 @@ jobs: timeout-minutes: 120 steps: - name: Checkout repository - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: submodules: false fetch-depth: 0 - name: Setup Python - uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0 + uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0 with: python-version: "3.13" - name: Install uv - uses: astral-sh/setup-uv@c771a70e6277c0a99b617c7a806ffedaca235ff9 # v9.0.0 + uses: astral-sh/setup-uv@c771a70e6277c0a99b617c7a806ffedaca235ff9 # v9.0.0 with: enable-cache: true - name: Install declared toolchain - uses: jdx/mise-action@9e7f7633ff6f6d6048a9418a68d48f288f50eb14 # v4.2.3 + uses: jdx/mise-action@9e7f7633ff6f6d6048a9418a68d48f288f50eb14 # v4.2.3 - name: Setup run: make setup diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 1aae0a178..8d5aee481 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -51,6 +51,7 @@ jobs: fetch-depth: 0 + - name: Install mise toolchain uses: jdx/mise-action@9e7f7633ff6f6d6048a9418a68d48f288f50eb14 # v4.2.3 diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 20a08c29d..748f477a7 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -1,7 +1,7 @@ # Generated by `flext-infra codegen conform` for flext — DO NOT EDIT. name: Docs -on: +"on": push: branches: - main @@ -92,18 +92,20 @@ jobs: timeout-minutes: 30 steps: - name: Checkout - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: submodules: false fetch-depth: 0 + + - name: Setup Python - uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0 + uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0 with: python-version: "3.13" - name: Install uv - uses: astral-sh/setup-uv@c771a70e6277c0a99b617c7a806ffedaca235ff9 # v9.0.0 + uses: astral-sh/setup-uv@c771a70e6277c0a99b617c7a806ffedaca235ff9 # v9.0.0 with: enable-cache: true @@ -149,7 +151,7 @@ jobs: # upload-artifact v4 skips hidden paths by default (artifact silently empty). - name: Upload docs reports on failure if: failure() - uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2 + uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2 with: name: docs-reports path: .reports/ @@ -163,18 +165,20 @@ jobs: timeout-minutes: 60 steps: - name: Checkout - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: submodules: false fetch-depth: 0 + + - name: Setup Python - uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0 + uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0 with: python-version: "3.13" - name: Install uv - uses: astral-sh/setup-uv@c771a70e6277c0a99b617c7a806ffedaca235ff9 # v9.0.0 + uses: astral-sh/setup-uv@c771a70e6277c0a99b617c7a806ffedaca235ff9 # v9.0.0 with: enable-cache: true @@ -188,10 +192,10 @@ jobs: run: make docs WHAT=build - name: Configure Pages - uses: actions/configure-pages@45bfe0192ca1faeb007ade9deae92b16b8254a0d # v6.0.0 + uses: actions/configure-pages@45bfe0192ca1faeb007ade9deae92b16b8254a0d # v6.0.0 - name: Upload site artifact - uses: actions/upload-pages-artifact@fc324d3547104276b827a68afc52ff2a11cc49c9 # v5.0.0 + uses: actions/upload-pages-artifact@fc324d3547104276b827a68afc52ff2a11cc49c9 # v5.0.0 with: path: .reports/docs/site @@ -207,4 +211,4 @@ jobs: steps: - name: Deploy to GitHub Pages id: deployment - uses: actions/deploy-pages@cd2ce8fcbc39b97be8ca5fce6e763baed58fa128 # v5.0.0 + uses: actions/deploy-pages@cd2ce8fcbc39b97be8ca5fce6e763baed58fa128 # v5.0.0 diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index ab2b0b4b6..3c19b523a 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -1,7 +1,7 @@ # Generated by `flext-infra codegen conform` for flext — DO NOT EDIT. name: Workspace Release -on: +"on": push: tags: - "v*" @@ -71,7 +71,7 @@ jobs: RELEASE_VERSION: ${{ needs.identity.outputs.version }} steps: - name: Checkout repository - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: fetch-depth: 0 persist-credentials: false @@ -99,12 +99,12 @@ jobs: fi - name: Setup Python - uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0 + uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0 with: python-version: "3.13" - name: Install uv - uses: astral-sh/setup-uv@c771a70e6277c0a99b617c7a806ffedaca235ff9 # v9.0.0 + uses: astral-sh/setup-uv@c771a70e6277c0a99b617c7a806ffedaca235ff9 # v9.0.0 with: enable-cache: false @@ -216,7 +216,7 @@ jobs: RELEASE_VERSION: ${{ needs.identity.outputs.version }} steps: - name: Checkout immutable canary source - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: fetch-depth: 0 persist-credentials: false @@ -248,12 +248,12 @@ jobs: echo "core_oid=$CORE_OID" >> "$GITHUB_OUTPUT" - name: Setup Python - uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0 + uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0 with: python-version: "3.13" - name: Install uv - uses: astral-sh/setup-uv@c771a70e6277c0a99b617c7a806ffedaca235ff9 # v9.0.0 + uses: astral-sh/setup-uv@c771a70e6277c0a99b617c7a806ffedaca235ff9 # v9.0.0 with: enable-cache: false diff --git a/.gitignore b/.gitignore index 15455b23c..91e4e665f 100644 --- a/.gitignore +++ b/.gitignore @@ -50,6 +50,7 @@ scripts/maintenance/ !.taplo.toml !pyrefly.toml !poetry.lock +!uv.lock !ruff-shared.toml !uv.lock @@ -350,13 +351,10 @@ __pyrefly_virtual__/ .venv.*/ *.egg-info/ build/ -context_test/ dist/ node_modules/ -rope_ws/ site/ target/ -tmp_flow_test/ .pyrefly_cache/ .tox/ .flext-sync.lock diff --git a/flext-api b/flext-api index 5bd518239..62b697312 160000 --- a/flext-api +++ b/flext-api @@ -1 +1 @@ -Subproject commit 5bd5182391dc865f285c618b3ee6b4df6dbedc5e +Subproject commit 62b6973122314f6bf4e6763129e7be89d4c0c456 diff --git a/flext-auth b/flext-auth index 42f58e6ba..3e5c2bba4 160000 --- a/flext-auth +++ b/flext-auth @@ -1 +1 @@ -Subproject commit 42f58e6bae8e23bc0d261184286e396a67ecaf2c +Subproject commit 3e5c2bba484077ba8b5f254ea2214c0bb3282c62 diff --git a/flext-cli b/flext-cli index 6ee07ab28..7cbe595c1 160000 --- a/flext-cli +++ b/flext-cli @@ -1 +1 @@ -Subproject commit 6ee07ab289653483cf6165796e5b8efb585ae619 +Subproject commit 7cbe595c1d120dec637cbd00f5582fca0a35c65d diff --git a/flext-core b/flext-core index 612833360..d9211f658 160000 --- a/flext-core +++ b/flext-core @@ -1 +1 @@ -Subproject commit 612833360508a28837d7c8b2d3074bc8eda6db74 +Subproject commit d9211f6586072324e6f2c28067ed7b19f35d9d2c diff --git a/flext-db-oracle b/flext-db-oracle index 203387faf..e7223e844 160000 --- a/flext-db-oracle +++ b/flext-db-oracle @@ -1 +1 @@ -Subproject commit 203387faf5f8393a99fafde6579516bbc06484a4 +Subproject commit e7223e844dd6de9d7fb2ad139201de8e37bc5ed5 diff --git a/flext-dbt-ldap b/flext-dbt-ldap index 4786fa147..2153b0f73 160000 --- a/flext-dbt-ldap +++ b/flext-dbt-ldap @@ -1 +1 @@ -Subproject commit 4786fa1474a346bc28c761819d7d9f25189b49cd +Subproject commit 2153b0f736928aca97d5c981ae72ce61a1ced825 diff --git a/flext-dbt-ldif b/flext-dbt-ldif index 7423cdcc2..6d6337c72 160000 --- a/flext-dbt-ldif +++ b/flext-dbt-ldif @@ -1 +1 @@ -Subproject commit 7423cdcc2e45acd0d3fb32eb15777845c9d1dbfa +Subproject commit 6d6337c72640d6a683ac4dc562710bc12beb346c diff --git a/flext-dbt-oracle b/flext-dbt-oracle index a6f458f36..fa51f92bd 160000 --- a/flext-dbt-oracle +++ b/flext-dbt-oracle @@ -1 +1 @@ -Subproject commit a6f458f368b3b72e12afbc63869a956c3cd60182 +Subproject commit fa51f92bdb82bdfcfce945c812489846b32d0a70 diff --git a/flext-dbt-oracle-wms b/flext-dbt-oracle-wms index 8065210e4..146d4d0aa 160000 --- a/flext-dbt-oracle-wms +++ b/flext-dbt-oracle-wms @@ -1 +1 @@ -Subproject commit 8065210e42bf686d92ab7fe206905b74b51bb5b2 +Subproject commit 146d4d0aaf7bce1f50936188e76469650ec6bda6 diff --git a/flext-grpc b/flext-grpc index 26b0ca0fe..a6ebc8ad7 160000 --- a/flext-grpc +++ b/flext-grpc @@ -1 +1 @@ -Subproject commit 26b0ca0fe084f13097ec815eb6f3c0c1a8b2ef90 +Subproject commit a6ebc8ad772d8c3af3ae3a635a2f551d6c5a6184 diff --git a/flext-infra b/flext-infra index 43ef0b5b6..337fd9a25 160000 --- a/flext-infra +++ b/flext-infra @@ -1 +1 @@ -Subproject commit 43ef0b5b690b94b3ea5d2c48ff9db90b4f6a14c6 +Subproject commit 337fd9a2503e9f2d04e435cebda00aebc1e90b55 diff --git a/flext-ldap b/flext-ldap index da31d276a..00c99ab41 160000 --- a/flext-ldap +++ b/flext-ldap @@ -1 +1 @@ -Subproject commit da31d276a689dfd9131a904989ea0cada1cae0f3 +Subproject commit 00c99ab419d4621b8c3444844e9b9105a1ea2dd9 diff --git a/flext-ldif b/flext-ldif index efb30129b..7e65c9ee6 160000 --- a/flext-ldif +++ b/flext-ldif @@ -1 +1 @@ -Subproject commit efb30129b6c409ebbb1064ee72716a267c43350a +Subproject commit 7e65c9ee6a4b0d0775c1f2263fdf2f4c1212c3e0 diff --git a/flext-meltano b/flext-meltano index 9861ab29a..bb0a7c15a 160000 --- a/flext-meltano +++ b/flext-meltano @@ -1 +1 @@ -Subproject commit 9861ab29a7dd41a6554060935e49f10d2c7fee3d +Subproject commit bb0a7c15afde655312431efa595b1d1f0086a993 diff --git a/flext-observability b/flext-observability index 38b817bd1..fea428af3 160000 --- a/flext-observability +++ b/flext-observability @@ -1 +1 @@ -Subproject commit 38b817bd1a7c56b05c376040229a643fecdf4190 +Subproject commit fea428af30a8631167b896c9a772e14db9559ff3 diff --git a/flext-oracle-oic b/flext-oracle-oic index 19249d69e..fbc1cf3c4 160000 --- a/flext-oracle-oic +++ b/flext-oracle-oic @@ -1 +1 @@ -Subproject commit 19249d69e2dc4e485f04a93625a65cf2797c8350 +Subproject commit fbc1cf3c4f38460a40f7c440cd7488a636c2d438 diff --git a/flext-oracle-wms b/flext-oracle-wms index ca978150e..944d0c4ec 160000 --- a/flext-oracle-wms +++ b/flext-oracle-wms @@ -1 +1 @@ -Subproject commit ca978150e517127b27f92c99486782bc1fdc23bb +Subproject commit 944d0c4ec56f0add55d68421e79e6e4897e9195f diff --git a/flext-plugin b/flext-plugin index bce610436..479a076ee 160000 --- a/flext-plugin +++ b/flext-plugin @@ -1 +1 @@ -Subproject commit bce6104360ffe782e86d6806db6691c45b356469 +Subproject commit 479a076eeef5f388d34b512c07b429eba139aa5d diff --git a/flext-quality b/flext-quality index e0db70f03..6811ec1e1 160000 --- a/flext-quality +++ b/flext-quality @@ -1 +1 @@ -Subproject commit e0db70f034e6d3c5913e15a125e895e5b636d70a +Subproject commit 6811ec1e11a1bf03e64594146b29058e7161eddb diff --git a/flext-tap-ldap b/flext-tap-ldap index a40a79fbe..a69cc3568 160000 --- a/flext-tap-ldap +++ b/flext-tap-ldap @@ -1 +1 @@ -Subproject commit a40a79fbeb3ce747942dde399ae8871b50dd4176 +Subproject commit a69cc3568fbcfbaf6c96bf44a5777e5e997450b4 diff --git a/flext-tap-ldif b/flext-tap-ldif index 71f1513f9..6b784f04e 160000 --- a/flext-tap-ldif +++ b/flext-tap-ldif @@ -1 +1 @@ -Subproject commit 71f1513f97f05a70a399df340548293f77de4149 +Subproject commit 6b784f04ec1f3887e6b6f8d65b27d0d7e3087ef1 diff --git a/flext-tap-oracle b/flext-tap-oracle index 7369e1b9c..6dc09a3ac 160000 --- a/flext-tap-oracle +++ b/flext-tap-oracle @@ -1 +1 @@ -Subproject commit 7369e1b9c8739e2d20c4f85b5a954611be8577c0 +Subproject commit 6dc09a3acef43198376e7c7baba6e24fb369b137 diff --git a/flext-tap-oracle-oic b/flext-tap-oracle-oic index 501ed0c37..8e09397a0 160000 --- a/flext-tap-oracle-oic +++ b/flext-tap-oracle-oic @@ -1 +1 @@ -Subproject commit 501ed0c37c46d4bbec34eb67819262b84c7266dd +Subproject commit 8e09397a0aca70f6170c9703b62637296507919c diff --git a/flext-tap-oracle-wms b/flext-tap-oracle-wms index 796a87f22..695d6d371 160000 --- a/flext-tap-oracle-wms +++ b/flext-tap-oracle-wms @@ -1 +1 @@ -Subproject commit 796a87f226221076908a867a1b01db0168194510 +Subproject commit 695d6d37190b8b82910df75dc6451d142a566124 diff --git a/flext-target-ldap b/flext-target-ldap index 5a025eba3..ce174c5c8 160000 --- a/flext-target-ldap +++ b/flext-target-ldap @@ -1 +1 @@ -Subproject commit 5a025eba3b52e17358858600cadc40b7b7adf7e6 +Subproject commit ce174c5c8717c4118b73961121b883dc0a0d1aa1 diff --git a/flext-target-ldif b/flext-target-ldif index 38933fc24..623190a46 160000 --- a/flext-target-ldif +++ b/flext-target-ldif @@ -1 +1 @@ -Subproject commit 38933fc243a53fa9f8bf5a2152df4ae7723a1e24 +Subproject commit 623190a46796b252c01e714c1df927dbc5eb40ad diff --git a/flext-target-oracle b/flext-target-oracle index 8b8708198..7912ce14f 160000 --- a/flext-target-oracle +++ b/flext-target-oracle @@ -1 +1 @@ -Subproject commit 8b87081989cf29dc0ba0bac3043beab374aa014e +Subproject commit 7912ce14f40f062c0e5497abc3d2eae393986012 diff --git a/flext-target-oracle-oic b/flext-target-oracle-oic index cb24cb3d3..46d9281be 160000 --- a/flext-target-oracle-oic +++ b/flext-target-oracle-oic @@ -1 +1 @@ -Subproject commit cb24cb3d3b90c5d7365bc3b00c9e0e745bbdfeff +Subproject commit 46d9281be1500862f6b41279693e13736d87139d diff --git a/flext-target-oracle-wms b/flext-target-oracle-wms index db020093e..b48d75dc7 160000 --- a/flext-target-oracle-wms +++ b/flext-target-oracle-wms @@ -1 +1 @@ -Subproject commit db020093e752493c22d55898f9e11d87d73f0ef5 +Subproject commit b48d75dc70a52f7461a981a6204939654b612d06 diff --git a/flext-tests b/flext-tests index 9dc51fe45..21cda4012 160000 --- a/flext-tests +++ b/flext-tests @@ -1 +1 @@ -Subproject commit 9dc51fe45e495c56bfb35b02b1a46d4972fbf063 +Subproject commit 21cda401239f139a2b8ff8eca1b08ca4b8414da4 diff --git a/flext-web b/flext-web index ce2a33a70..4151af209 160000 --- a/flext-web +++ b/flext-web @@ -1 +1 @@ -Subproject commit ce2a33a70cbbf4aea076fff7687ab701bc4ff644 +Subproject commit 4151af2098760ce474ec0c207acec259f089ef0c From b58b3905f26963ca320b50896cda248150b6d64a Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Mon, 3 Aug 2026 17:25:27 -0300 Subject: [PATCH 12/23] chore(workspace): land blank-line fixed-point and pin member tips Root Makefile/CI/docs projections after private_submodules endif trim and pytest timeout SSOT; pin all members to the landed tips. Co-authored-by: Cursor --- .github/workflows/ci.yml | 2 -- .github/workflows/docs.yml | 4 ---- Makefile | 2 +- flext-api | 2 +- flext-auth | 2 +- flext-cli | 2 +- flext-core | 2 +- flext-db-oracle | 2 +- flext-dbt-ldap | 2 +- flext-dbt-ldif | 2 +- flext-dbt-oracle | 2 +- flext-dbt-oracle-wms | 2 +- flext-grpc | 2 +- flext-infra | 2 +- flext-ldap | 2 +- flext-ldif | 2 +- flext-meltano | 2 +- flext-observability | 2 +- flext-oracle-oic | 2 +- flext-oracle-wms | 2 +- flext-plugin | 2 +- flext-quality | 2 +- flext-tap-ldap | 2 +- flext-tap-ldif | 2 +- flext-tap-oracle | 2 +- flext-tap-oracle-oic | 2 +- flext-tap-oracle-wms | 2 +- flext-target-ldap | 2 +- flext-target-ldif | 2 +- flext-target-oracle | 2 +- flext-target-oracle-oic | 2 +- flext-target-oracle-wms | 2 +- flext-tests | 2 +- flext-web | 2 +- 34 files changed, 32 insertions(+), 38 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 8d5aee481..dabc3c944 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -50,8 +50,6 @@ jobs: submodules: false fetch-depth: 0 - - - name: Install mise toolchain uses: jdx/mise-action@9e7f7633ff6f6d6048a9418a68d48f288f50eb14 # v4.2.3 diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 748f477a7..c3c0d317e 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -97,8 +97,6 @@ jobs: submodules: false fetch-depth: 0 - - - name: Setup Python uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0 with: @@ -170,8 +168,6 @@ jobs: submodules: false fetch-depth: 0 - - - name: Setup Python uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0 with: diff --git a/Makefile b/Makefile index 48d072cef..ee4da039d 100644 --- a/Makefile +++ b/Makefile @@ -48,7 +48,7 @@ BRANCH ?= PYTEST_ARGS ?= PYTEST_DIAG_ARGS ?= -rA --durations=0 --tb=long --showlocals PYTEST_REPORT_ARGS ?= -ra --durations=25 --durations-min=0.001 --tb=short -PYTEST_PROCESS_TIMEOUT_SECONDS ?= 60 +PYTEST_PROCESS_TIMEOUT_SECONDS ?= 360 # mro-99ae: the pytest process inherits a hard wall-clock boundary, mirroring # MYPY_BOUNDED, so a hung run is terminated even if the typed runner stalls. PYTEST_BOUNDED = timeout --signal=TERM --kill-after=5s "$(PYTEST_PROCESS_TIMEOUT_SECONDS)s" diff --git a/flext-api b/flext-api index 62b697312..22739898d 160000 --- a/flext-api +++ b/flext-api @@ -1 +1 @@ -Subproject commit 62b6973122314f6bf4e6763129e7be89d4c0c456 +Subproject commit 22739898da946c8052cb85bfcc4cbb1f7ddb0ea2 diff --git a/flext-auth b/flext-auth index 3e5c2bba4..5e0cc4fff 160000 --- a/flext-auth +++ b/flext-auth @@ -1 +1 @@ -Subproject commit 3e5c2bba484077ba8b5f254ea2214c0bb3282c62 +Subproject commit 5e0cc4ffff6b37d4efbb0fde7406507376d5d09f diff --git a/flext-cli b/flext-cli index 7cbe595c1..503b37fc3 160000 --- a/flext-cli +++ b/flext-cli @@ -1 +1 @@ -Subproject commit 7cbe595c1d120dec637cbd00f5582fca0a35c65d +Subproject commit 503b37fc3c36da1e6e4f08bebc5b0b831a25a669 diff --git a/flext-core b/flext-core index d9211f658..6eed49d38 160000 --- a/flext-core +++ b/flext-core @@ -1 +1 @@ -Subproject commit d9211f6586072324e6f2c28067ed7b19f35d9d2c +Subproject commit 6eed49d381614fb8cc34afb17d2708c654ff36ec diff --git a/flext-db-oracle b/flext-db-oracle index e7223e844..39b461407 160000 --- a/flext-db-oracle +++ b/flext-db-oracle @@ -1 +1 @@ -Subproject commit e7223e844dd6de9d7fb2ad139201de8e37bc5ed5 +Subproject commit 39b461407a002eceba6378fe350ba838c6b60cb9 diff --git a/flext-dbt-ldap b/flext-dbt-ldap index 2153b0f73..87d760a26 160000 --- a/flext-dbt-ldap +++ b/flext-dbt-ldap @@ -1 +1 @@ -Subproject commit 2153b0f736928aca97d5c981ae72ce61a1ced825 +Subproject commit 87d760a2641f1491768ea0e27dd086d5a2bf1328 diff --git a/flext-dbt-ldif b/flext-dbt-ldif index 6d6337c72..b2cc81ab0 160000 --- a/flext-dbt-ldif +++ b/flext-dbt-ldif @@ -1 +1 @@ -Subproject commit 6d6337c72640d6a683ac4dc562710bc12beb346c +Subproject commit b2cc81ab0a901deaf43dd6afe45953fb53c321a4 diff --git a/flext-dbt-oracle b/flext-dbt-oracle index fa51f92bd..e66b2c5d4 160000 --- a/flext-dbt-oracle +++ b/flext-dbt-oracle @@ -1 +1 @@ -Subproject commit fa51f92bdb82bdfcfce945c812489846b32d0a70 +Subproject commit e66b2c5d4601d93d4f9d3d8a6ebf919eb68e7948 diff --git a/flext-dbt-oracle-wms b/flext-dbt-oracle-wms index 146d4d0aa..8247c60dd 160000 --- a/flext-dbt-oracle-wms +++ b/flext-dbt-oracle-wms @@ -1 +1 @@ -Subproject commit 146d4d0aaf7bce1f50936188e76469650ec6bda6 +Subproject commit 8247c60dd2b944ed2e5407ffc1ec543c48e11398 diff --git a/flext-grpc b/flext-grpc index a6ebc8ad7..55ea357eb 160000 --- a/flext-grpc +++ b/flext-grpc @@ -1 +1 @@ -Subproject commit a6ebc8ad772d8c3af3ae3a635a2f551d6c5a6184 +Subproject commit 55ea357eb00629ef075d9b431dbb427cdbba6b33 diff --git a/flext-infra b/flext-infra index 337fd9a25..3d9074570 160000 --- a/flext-infra +++ b/flext-infra @@ -1 +1 @@ -Subproject commit 337fd9a2503e9f2d04e435cebda00aebc1e90b55 +Subproject commit 3d9074570edece367c6e6aac3058af136472e43d diff --git a/flext-ldap b/flext-ldap index 00c99ab41..95a88bd91 160000 --- a/flext-ldap +++ b/flext-ldap @@ -1 +1 @@ -Subproject commit 00c99ab419d4621b8c3444844e9b9105a1ea2dd9 +Subproject commit 95a88bd91be18f3b8b1ada25cd9c30e74aeaf7d4 diff --git a/flext-ldif b/flext-ldif index 7e65c9ee6..dd2b39114 160000 --- a/flext-ldif +++ b/flext-ldif @@ -1 +1 @@ -Subproject commit 7e65c9ee6a4b0d0775c1f2263fdf2f4c1212c3e0 +Subproject commit dd2b39114b42197629c275b9f0714e4f5834ba31 diff --git a/flext-meltano b/flext-meltano index bb0a7c15a..6598ceb42 160000 --- a/flext-meltano +++ b/flext-meltano @@ -1 +1 @@ -Subproject commit bb0a7c15afde655312431efa595b1d1f0086a993 +Subproject commit 6598ceb42ae6436f5045a3507e925d2229c5013b diff --git a/flext-observability b/flext-observability index fea428af3..8d13b44d5 160000 --- a/flext-observability +++ b/flext-observability @@ -1 +1 @@ -Subproject commit fea428af30a8631167b896c9a772e14db9559ff3 +Subproject commit 8d13b44d51d63314b9ff637c1b856635362b2ed3 diff --git a/flext-oracle-oic b/flext-oracle-oic index fbc1cf3c4..cbde6587e 160000 --- a/flext-oracle-oic +++ b/flext-oracle-oic @@ -1 +1 @@ -Subproject commit fbc1cf3c4f38460a40f7c440cd7488a636c2d438 +Subproject commit cbde6587ecb9fa114092e74da6e25d0e665ac42f diff --git a/flext-oracle-wms b/flext-oracle-wms index 944d0c4ec..cdd874a04 160000 --- a/flext-oracle-wms +++ b/flext-oracle-wms @@ -1 +1 @@ -Subproject commit 944d0c4ec56f0add55d68421e79e6e4897e9195f +Subproject commit cdd874a0407880465670197dd95960685fceac98 diff --git a/flext-plugin b/flext-plugin index 479a076ee..9186a8f3e 160000 --- a/flext-plugin +++ b/flext-plugin @@ -1 +1 @@ -Subproject commit 479a076eeef5f388d34b512c07b429eba139aa5d +Subproject commit 9186a8f3ec9304fddf485f9886bf9e4eaf4aac6d diff --git a/flext-quality b/flext-quality index 6811ec1e1..d42fedf3a 160000 --- a/flext-quality +++ b/flext-quality @@ -1 +1 @@ -Subproject commit 6811ec1e11a1bf03e64594146b29058e7161eddb +Subproject commit d42fedf3a258afd7f35410e4d553eb26ecc63514 diff --git a/flext-tap-ldap b/flext-tap-ldap index a69cc3568..7bf616ef3 160000 --- a/flext-tap-ldap +++ b/flext-tap-ldap @@ -1 +1 @@ -Subproject commit a69cc3568fbcfbaf6c96bf44a5777e5e997450b4 +Subproject commit 7bf616ef3a4d07a8d9036edbc1c5f39cde34dc39 diff --git a/flext-tap-ldif b/flext-tap-ldif index 6b784f04e..1b2f5dfa6 160000 --- a/flext-tap-ldif +++ b/flext-tap-ldif @@ -1 +1 @@ -Subproject commit 6b784f04ec1f3887e6b6f8d65b27d0d7e3087ef1 +Subproject commit 1b2f5dfa664057b0e10bc66833dc12248358e18b diff --git a/flext-tap-oracle b/flext-tap-oracle index 6dc09a3ac..0f7b2c15a 160000 --- a/flext-tap-oracle +++ b/flext-tap-oracle @@ -1 +1 @@ -Subproject commit 6dc09a3acef43198376e7c7baba6e24fb369b137 +Subproject commit 0f7b2c15a41f7a79c9070051def4e72e10895ed9 diff --git a/flext-tap-oracle-oic b/flext-tap-oracle-oic index 8e09397a0..9c8729f27 160000 --- a/flext-tap-oracle-oic +++ b/flext-tap-oracle-oic @@ -1 +1 @@ -Subproject commit 8e09397a0aca70f6170c9703b62637296507919c +Subproject commit 9c8729f27c2272cb4ca53c97b482e41442597fa4 diff --git a/flext-tap-oracle-wms b/flext-tap-oracle-wms index 695d6d371..34f8e3bac 160000 --- a/flext-tap-oracle-wms +++ b/flext-tap-oracle-wms @@ -1 +1 @@ -Subproject commit 695d6d37190b8b82910df75dc6451d142a566124 +Subproject commit 34f8e3bacb5e77e7ed7583c3fc7a0e0b2c3d86ab diff --git a/flext-target-ldap b/flext-target-ldap index ce174c5c8..2df790593 160000 --- a/flext-target-ldap +++ b/flext-target-ldap @@ -1 +1 @@ -Subproject commit ce174c5c8717c4118b73961121b883dc0a0d1aa1 +Subproject commit 2df7905932ec0ad21adb2b420e0f969ba9020d67 diff --git a/flext-target-ldif b/flext-target-ldif index 623190a46..db422aef4 160000 --- a/flext-target-ldif +++ b/flext-target-ldif @@ -1 +1 @@ -Subproject commit 623190a46796b252c01e714c1df927dbc5eb40ad +Subproject commit db422aef4efa1d515533fa464227bffd671c1de9 diff --git a/flext-target-oracle b/flext-target-oracle index 7912ce14f..2e5ee95c0 160000 --- a/flext-target-oracle +++ b/flext-target-oracle @@ -1 +1 @@ -Subproject commit 7912ce14f40f062c0e5497abc3d2eae393986012 +Subproject commit 2e5ee95c08ec47c25a073b7f5924889ee4579cfa diff --git a/flext-target-oracle-oic b/flext-target-oracle-oic index 46d9281be..3d0b13646 160000 --- a/flext-target-oracle-oic +++ b/flext-target-oracle-oic @@ -1 +1 @@ -Subproject commit 46d9281be1500862f6b41279693e13736d87139d +Subproject commit 3d0b1364688a641fd01195ae8b5a3a759ec5cb1f diff --git a/flext-target-oracle-wms b/flext-target-oracle-wms index b48d75dc7..b013135c2 160000 --- a/flext-target-oracle-wms +++ b/flext-target-oracle-wms @@ -1 +1 @@ -Subproject commit b48d75dc70a52f7461a981a6204939654b612d06 +Subproject commit b013135c2cddc6d2d6931855da93f6f9340599a8 diff --git a/flext-tests b/flext-tests index 21cda4012..6eaabd062 160000 --- a/flext-tests +++ b/flext-tests @@ -1 +1 @@ -Subproject commit 21cda401239f139a2b8ff8eca1b08ca4b8414da4 +Subproject commit 6eaabd06212978da8d71813b05f0d5c4f4c0890b diff --git a/flext-web b/flext-web index 4151af209..6ef4f6056 160000 --- a/flext-web +++ b/flext-web @@ -1 +1 @@ -Subproject commit 4151af2098760ce474ec0c207acec259f089ef0c +Subproject commit 6ef4f60562dd2b10d0727f0664d5729b4472701a From f0337fff237e7faa041d18b8775a3b4c010d7cd7 Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Mon, 3 Aug 2026 17:26:51 -0300 Subject: [PATCH 13/23] chore(workspace): pin flext-infra after docs TOC no-H1 fallback Advance flext-infra gitlink for MD041-safe TOC insertion when bodies lack a level-1 heading. Co-authored-by: Cursor --- flext-infra | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/flext-infra b/flext-infra index 3d9074570..078ec57db 160000 --- a/flext-infra +++ b/flext-infra @@ -1 +1 @@ -Subproject commit 3d9074570edece367c6e6aac3058af136472e43d +Subproject commit 078ec57db4e390eca1a4dabebfcca6f27f5c9e4f From 750c9e15c4f1cddfef2c48a3a6138abc76ed12ec Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Mon, 3 Aug 2026 17:34:47 -0300 Subject: [PATCH 14/23] chore(workspace): pin flext-infra release.yml raw-block fix Advance flext-infra for checkout_submodules rendering inside release.yml raw spans, and document that flext-infra owns fleet CI/hook projections. Co-authored-by: Cursor --- AGENTS.md | 1 + flext-infra | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/AGENTS.md b/AGENTS.md index 3b8ee2d06..fa4ac52f9 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -184,6 +184,7 @@ make build WHAT=artifacts - `flext-infra` defaults via project/workspace `config/` overlays — not forked defaults. - Provisioning adjusts and never destroys dirty work; no `git checkout` / `git reset` in setup or member sync. - `make gen APPLY=Y` must be idempotent (following `make gen` reports no drift). +- `flext-infra` codegen owns fleet CI and hook projections; update its config/templates, then regenerate consumers. ## Workspace providers diff --git a/flext-infra b/flext-infra index 078ec57db..f345f4c10 160000 --- a/flext-infra +++ b/flext-infra @@ -1 +1 @@ -Subproject commit 078ec57db4e390eca1a4dabebfcca6f27f5c9e4f +Subproject commit f345f4c1042152c6a7940c31b7605066a0198b93 From 09ffe98bb0adb63a8a7c27b1369bfb35f27ef37d Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Mon, 3 Aug 2026 17:37:05 -0300 Subject: [PATCH 15/23] chore(gen): land release.yml checkout_submodules projection Regenerate root release.yml after flext-infra raw-block fix so submodules renders as a concrete value instead of a literal Jinja expression. Co-authored-by: Cursor --- .github/workflows/release.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 3c19b523a..a4b71a8dc 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -76,7 +76,7 @@ jobs: fetch-depth: 0 persist-credentials: false ref: ${{ github.sha }} - submodules: {{ checkout_submodules }} + submodules: false - name: Verify immutable release source shell: bash @@ -221,7 +221,7 @@ jobs: fetch-depth: 0 persist-credentials: false ref: ${{ github.sha }} - submodules: {{ checkout_submodules }} + submodules: false - name: Verify immutable canary source id: source From 9f47336be944dbe2b875780df352e62e36efb44c Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Mon, 3 Aug 2026 17:45:31 -0300 Subject: [PATCH 16/23] chore(workspace): repin flext-dbt-ldif and flext-infra tips Absorb concurrent tip advances so make gen gitlink guards stay green for fixed-point validation. Co-authored-by: Cursor --- flext-dbt-ldif | 2 +- flext-infra | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/flext-dbt-ldif b/flext-dbt-ldif index b2cc81ab0..8b1bbf58c 160000 --- a/flext-dbt-ldif +++ b/flext-dbt-ldif @@ -1 +1 @@ -Subproject commit b2cc81ab0a901deaf43dd6afe45953fb53c321a4 +Subproject commit 8b1bbf58c9e8cd68ca19ac81d2d5ec33771a45f1 diff --git a/flext-infra b/flext-infra index f345f4c10..2c8220cda 160000 --- a/flext-infra +++ b/flext-infra @@ -1 +1 @@ -Subproject commit f345f4c1042152c6a7940c31b7605066a0198b93 +Subproject commit 2c8220cda441c61f007b068c44a84c54afa1f8e9 From bed5ae24a7eaa7007f54804bb455588bf4d0d5b4 Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Mon, 3 Aug 2026 17:51:39 -0300 Subject: [PATCH 17/23] chore(workspace): pin flext-infra docs apply-serialized SSOT Advance flext-infra so make docs is apply-guarded and serialized, unblocking config import and subsequent gen fixed-point validation. Co-authored-by: Cursor --- flext-infra | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/flext-infra b/flext-infra index 2c8220cda..4d25eeb58 160000 --- a/flext-infra +++ b/flext-infra @@ -1 +1 @@ -Subproject commit 2c8220cda441c61f007b068c44a84c54afa1f8e9 +Subproject commit 4d25eeb58d28ff23095d8efdcb320a019cadb0aa From 99c093a63bb79cc6eeacd40b2a414330d1232b38 Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Mon, 3 Aug 2026 17:57:59 -0300 Subject: [PATCH 18/23] chore(make): land serialized docs verb projection MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Projection of the docs apply-guard SSOT (flext-infra 7c6a200d): adds docs to SERIALIZED_VERBS/SERIALIZED_TARGETS and declares _APPLY_WHAT_docs := generate, so `make docs WHAT=generate APPLY=Y` is accepted instead of rejected as read-only. Verified fixed point — md5 unchanged across make gen APPLY=Y. --- Makefile | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/Makefile b/Makefile index ee4da039d..c8fabb6e0 100644 --- a/Makefile +++ b/Makefile @@ -130,8 +130,8 @@ _ALLOWED_WHATS_worktree := list add update remove $(shell sed -n 's/^_custom_wor CHECK_GATES_ALLOWED := lint format pyrefly mypy pyright security markdown smells CHECK_GATES_DEFAULT := lint pyrefly mypy pyright security markdown smells DOCS_ACTIONS := generate fix audit build validate -SERIALIZED_VERBS := check test gen fmt fix deps clean worktree -SERIALIZED_TARGETS := _serialized_check _serialized_test _serialized_gen _serialized_fmt _serialized_fix _serialized_deps _serialized_clean _serialized_worktree +SERIALIZED_VERBS := check test gen fmt fix deps clean worktree docs +SERIALIZED_TARGETS := _serialized_check _serialized_test _serialized_gen _serialized_fmt _serialized_fix _serialized_deps _serialized_clean _serialized_worktree _serialized_docs # End SECTION: verb dispatch # === SECTION: lint/type paths (managed) === @@ -180,6 +180,7 @@ _APPLY_WHAT_deps := upgrade _APPLY_WHAT_fmt := apply _APPLY_WHAT_fix := apply _APPLY_WHAT_run := default +_APPLY_WHAT_docs := generate _APPLY_WHAT_clean := generated _APPLY_WHAT_gen := apply _APPLY_WHAT_worktree := update @@ -435,6 +436,13 @@ _serialized_worktree: $(call _dispatch,worktree) +docs: _builtin_require_environment + @$(PROJECT_FLEXT_INFRA) workspace serialize-make --workspace "$(PROJECT_ROOT)" --makefile "$(SELF_MAKEFILE)" --verb "docs" --selector-value "$(WHAT)" --apply-token "$(APPLY)" + +_serialized_docs: + $(call _dispatch,docs) + + # `setup` keeps its own recipe (it must not require the environment it is about # to build), but it still runs the pre-/post-setup lifecycle hooks so a project @@ -494,7 +502,7 @@ _builtin_help_usage: - @printf ' %-10s WHAT=%s\n' 'docs' "$$(printf '%s' '$(_ALLOWED_WHATS_docs)' | awk '{$$1=$$1; gsub(/ /, "|"); print}')"; + @printf ' %-10s WHAT=%s APPLY=Y\n' 'docs' "$$(printf '%s' '$(_ALLOWED_WHATS_docs)' | awk '{$$1=$$1; gsub(/ /, "|"); print}')"; From fe0fb78ae29bfa0eb4afc8e40b5f9eda821550fc Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Mon, 3 Aug 2026 18:04:42 -0300 Subject: [PATCH 19/23] chore(workspace): advance 19 member gitlinks to pushed tips Adopted staged gitlink advances left by a codegen lane with no live generator running. Every target SHA verified present on its member remote (0 unpushed of 19) and every submodule worktree is clean, so a fresh clone resolves. --- flext-api | 2 +- flext-auth | 2 +- flext-cli | 2 +- flext-core | 2 +- flext-db-oracle | 2 +- flext-dbt-ldap | 2 +- flext-dbt-ldif | 2 +- flext-dbt-oracle | 2 +- flext-dbt-oracle-wms | 2 +- flext-grpc | 2 +- flext-infra | 2 +- flext-ldap | 2 +- flext-ldif | 2 +- flext-meltano | 2 +- flext-observability | 2 +- flext-plugin | 2 +- flext-quality | 2 +- flext-target-oracle | 2 +- flext-tests | 2 +- 19 files changed, 19 insertions(+), 19 deletions(-) diff --git a/flext-api b/flext-api index 22739898d..fc6ae0c84 160000 --- a/flext-api +++ b/flext-api @@ -1 +1 @@ -Subproject commit 22739898da946c8052cb85bfcc4cbb1f7ddb0ea2 +Subproject commit fc6ae0c8428799870976327c1ebeda826581e6dd diff --git a/flext-auth b/flext-auth index 5e0cc4fff..07d7f7247 160000 --- a/flext-auth +++ b/flext-auth @@ -1 +1 @@ -Subproject commit 5e0cc4ffff6b37d4efbb0fde7406507376d5d09f +Subproject commit 07d7f72470a901d9e927d14b30e03b53617c0f9a diff --git a/flext-cli b/flext-cli index 503b37fc3..c31e0a090 160000 --- a/flext-cli +++ b/flext-cli @@ -1 +1 @@ -Subproject commit 503b37fc3c36da1e6e4f08bebc5b0b831a25a669 +Subproject commit c31e0a0904183c86ddb1689616813008aea17a22 diff --git a/flext-core b/flext-core index 6eed49d38..3a681ab03 160000 --- a/flext-core +++ b/flext-core @@ -1 +1 @@ -Subproject commit 6eed49d381614fb8cc34afb17d2708c654ff36ec +Subproject commit 3a681ab036aad40597b281dab3f246cd372e109f diff --git a/flext-db-oracle b/flext-db-oracle index 39b461407..c796546c8 160000 --- a/flext-db-oracle +++ b/flext-db-oracle @@ -1 +1 @@ -Subproject commit 39b461407a002eceba6378fe350ba838c6b60cb9 +Subproject commit c796546c85ebeab1a2755187304a5a2afb401220 diff --git a/flext-dbt-ldap b/flext-dbt-ldap index 87d760a26..eeeb349a7 160000 --- a/flext-dbt-ldap +++ b/flext-dbt-ldap @@ -1 +1 @@ -Subproject commit 87d760a2641f1491768ea0e27dd086d5a2bf1328 +Subproject commit eeeb349a75c296ffe8667c7a51e6ae276087f1a9 diff --git a/flext-dbt-ldif b/flext-dbt-ldif index 8b1bbf58c..5b4af1440 160000 --- a/flext-dbt-ldif +++ b/flext-dbt-ldif @@ -1 +1 @@ -Subproject commit 8b1bbf58c9e8cd68ca19ac81d2d5ec33771a45f1 +Subproject commit 5b4af14403e2bf82bf63b9a2d41491bcde042c3a diff --git a/flext-dbt-oracle b/flext-dbt-oracle index e66b2c5d4..c999fafc4 160000 --- a/flext-dbt-oracle +++ b/flext-dbt-oracle @@ -1 +1 @@ -Subproject commit e66b2c5d4601d93d4f9d3d8a6ebf919eb68e7948 +Subproject commit c999fafc485b91e08044ea73ffca0c1a2da08f87 diff --git a/flext-dbt-oracle-wms b/flext-dbt-oracle-wms index 8247c60dd..515a1b0fb 160000 --- a/flext-dbt-oracle-wms +++ b/flext-dbt-oracle-wms @@ -1 +1 @@ -Subproject commit 8247c60dd2b944ed2e5407ffc1ec543c48e11398 +Subproject commit 515a1b0fbf93665b525a36a6c5327d6e8d000db3 diff --git a/flext-grpc b/flext-grpc index 55ea357eb..3ebf45440 160000 --- a/flext-grpc +++ b/flext-grpc @@ -1 +1 @@ -Subproject commit 55ea357eb00629ef075d9b431dbb427cdbba6b33 +Subproject commit 3ebf45440ef870b98c24cb4aae00d87bbcd02510 diff --git a/flext-infra b/flext-infra index 4d25eeb58..7848c29cd 160000 --- a/flext-infra +++ b/flext-infra @@ -1 +1 @@ -Subproject commit 4d25eeb58d28ff23095d8efdcb320a019cadb0aa +Subproject commit 7848c29cd171952e49747f5ea943add4bfd82cd4 diff --git a/flext-ldap b/flext-ldap index 95a88bd91..765619ef6 160000 --- a/flext-ldap +++ b/flext-ldap @@ -1 +1 @@ -Subproject commit 95a88bd91be18f3b8b1ada25cd9c30e74aeaf7d4 +Subproject commit 765619ef6ba4275b81dab7418fb6e7368965f8f1 diff --git a/flext-ldif b/flext-ldif index dd2b39114..fcb9dd326 160000 --- a/flext-ldif +++ b/flext-ldif @@ -1 +1 @@ -Subproject commit dd2b39114b42197629c275b9f0714e4f5834ba31 +Subproject commit fcb9dd3265b2941a6d876333737c0d46d07c3553 diff --git a/flext-meltano b/flext-meltano index 6598ceb42..c8e37123c 160000 --- a/flext-meltano +++ b/flext-meltano @@ -1 +1 @@ -Subproject commit 6598ceb42ae6436f5045a3507e925d2229c5013b +Subproject commit c8e37123c7f0487ec2aaf2701bee3f48036d818e diff --git a/flext-observability b/flext-observability index 8d13b44d5..5b5d0dd7a 160000 --- a/flext-observability +++ b/flext-observability @@ -1 +1 @@ -Subproject commit 8d13b44d51d63314b9ff637c1b856635362b2ed3 +Subproject commit 5b5d0dd7ab2a8618a5c48bb2e612691495c53098 diff --git a/flext-plugin b/flext-plugin index 9186a8f3e..8092fc0e6 160000 --- a/flext-plugin +++ b/flext-plugin @@ -1 +1 @@ -Subproject commit 9186a8f3ec9304fddf485f9886bf9e4eaf4aac6d +Subproject commit 8092fc0e6c005fa74c2a0778b6a3bc39f41dcbe8 diff --git a/flext-quality b/flext-quality index d42fedf3a..f835ae61e 160000 --- a/flext-quality +++ b/flext-quality @@ -1 +1 @@ -Subproject commit d42fedf3a258afd7f35410e4d553eb26ecc63514 +Subproject commit f835ae61e4d9109b96c6fb379f834d466d5bd4c2 diff --git a/flext-target-oracle b/flext-target-oracle index 2e5ee95c0..ca2c506e1 160000 --- a/flext-target-oracle +++ b/flext-target-oracle @@ -1 +1 @@ -Subproject commit 2e5ee95c08ec47c25a073b7f5924889ee4579cfa +Subproject commit ca2c506e109ee74c8a2d847d1b3aabfaebb0da4e diff --git a/flext-tests b/flext-tests index 6eaabd062..285151aa9 160000 --- a/flext-tests +++ b/flext-tests @@ -1 +1 @@ -Subproject commit 6eaabd06212978da8d71813b05f0d5c4f4c0890b +Subproject commit 285151aa9dc573ba5f44bdeb5faae582a0c3b478 From 087a6d828c9015d430ea0fbd73becf65ecf411c1 Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Mon, 3 Aug 2026 18:05:02 -0300 Subject: [PATCH 20/23] chore(workspace): land docs-apply Makefile and pin member tips Root Makefile gains serialized apply-guarded docs; pin all members after fleet docs-apply Makefile landings. Co-authored-by: Cursor --- flext-oracle-oic | 2 +- flext-oracle-wms | 2 +- flext-tap-ldap | 2 +- flext-tap-ldif | 2 +- flext-tap-oracle | 2 +- flext-tap-oracle-oic | 2 +- flext-tap-oracle-wms | 2 +- flext-target-ldap | 2 +- flext-target-ldif | 2 +- flext-target-oracle-oic | 2 +- flext-target-oracle-wms | 2 +- flext-web | 2 +- 12 files changed, 12 insertions(+), 12 deletions(-) diff --git a/flext-oracle-oic b/flext-oracle-oic index cbde6587e..8a698e890 160000 --- a/flext-oracle-oic +++ b/flext-oracle-oic @@ -1 +1 @@ -Subproject commit cbde6587ecb9fa114092e74da6e25d0e665ac42f +Subproject commit 8a698e890f3b163f12396a5f16f0fd7119437796 diff --git a/flext-oracle-wms b/flext-oracle-wms index cdd874a04..eea282501 160000 --- a/flext-oracle-wms +++ b/flext-oracle-wms @@ -1 +1 @@ -Subproject commit cdd874a0407880465670197dd95960685fceac98 +Subproject commit eea2825014725ea5672c63de0115111fbd93c142 diff --git a/flext-tap-ldap b/flext-tap-ldap index 7bf616ef3..62a46a2d8 160000 --- a/flext-tap-ldap +++ b/flext-tap-ldap @@ -1 +1 @@ -Subproject commit 7bf616ef3a4d07a8d9036edbc1c5f39cde34dc39 +Subproject commit 62a46a2d837afd503c4efed7659851620c7a6ab7 diff --git a/flext-tap-ldif b/flext-tap-ldif index 1b2f5dfa6..5b226259a 160000 --- a/flext-tap-ldif +++ b/flext-tap-ldif @@ -1 +1 @@ -Subproject commit 1b2f5dfa664057b0e10bc66833dc12248358e18b +Subproject commit 5b226259a17c40c7b677ade1efe7b919612444ed diff --git a/flext-tap-oracle b/flext-tap-oracle index 0f7b2c15a..6275c68c3 160000 --- a/flext-tap-oracle +++ b/flext-tap-oracle @@ -1 +1 @@ -Subproject commit 0f7b2c15a41f7a79c9070051def4e72e10895ed9 +Subproject commit 6275c68c3abb4c7c4e2d8948e8389884b5de41af diff --git a/flext-tap-oracle-oic b/flext-tap-oracle-oic index 9c8729f27..22ff98571 160000 --- a/flext-tap-oracle-oic +++ b/flext-tap-oracle-oic @@ -1 +1 @@ -Subproject commit 9c8729f27c2272cb4ca53c97b482e41442597fa4 +Subproject commit 22ff9857193857dc323daa6c889c00d6c0348c37 diff --git a/flext-tap-oracle-wms b/flext-tap-oracle-wms index 34f8e3bac..afcf37cab 160000 --- a/flext-tap-oracle-wms +++ b/flext-tap-oracle-wms @@ -1 +1 @@ -Subproject commit 34f8e3bacb5e77e7ed7583c3fc7a0e0b2c3d86ab +Subproject commit afcf37cab0e9d52854330ed4e7eb84bf149b99b4 diff --git a/flext-target-ldap b/flext-target-ldap index 2df790593..09bf7400d 160000 --- a/flext-target-ldap +++ b/flext-target-ldap @@ -1 +1 @@ -Subproject commit 2df7905932ec0ad21adb2b420e0f969ba9020d67 +Subproject commit 09bf7400d344474ad85b03fdeb6b2d3002dcb17a diff --git a/flext-target-ldif b/flext-target-ldif index db422aef4..9fbe8c3f5 160000 --- a/flext-target-ldif +++ b/flext-target-ldif @@ -1 +1 @@ -Subproject commit db422aef4efa1d515533fa464227bffd671c1de9 +Subproject commit 9fbe8c3f501ecd8b5a9165cce382aef227c0cfea diff --git a/flext-target-oracle-oic b/flext-target-oracle-oic index 3d0b13646..417b06dcc 160000 --- a/flext-target-oracle-oic +++ b/flext-target-oracle-oic @@ -1 +1 @@ -Subproject commit 3d0b1364688a641fd01195ae8b5a3a759ec5cb1f +Subproject commit 417b06dcc92fcb364db754f7a98258e6efc29fef diff --git a/flext-target-oracle-wms b/flext-target-oracle-wms index b013135c2..aca43f7ce 160000 --- a/flext-target-oracle-wms +++ b/flext-target-oracle-wms @@ -1 +1 @@ -Subproject commit b013135c2cddc6d2d6931855da93f6f9340599a8 +Subproject commit aca43f7ce48023c44b727315411b40ed13657a56 diff --git a/flext-web b/flext-web index 6ef4f6056..139a47979 160000 --- a/flext-web +++ b/flext-web @@ -1 +1 @@ -Subproject commit 6ef4f60562dd2b10d0727f0664d5729b4472701a +Subproject commit 139a4797925039b755b129c9e10c379ad523ff6c From 7039e8541a28cdf71a8922ea76c81be1124d3291 Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Mon, 3 Aug 2026 18:10:32 -0300 Subject: [PATCH 21/23] chore(workspace): advance flext-infra gitlink for staged _pending codemod corpus Points at flext-infra d31a7cb0 which stages the 214 _pending ast-grep rules recovered from closed PR #67 at the canonical owner, disabled by construction via sgconfig ruleDirs. Beads: mro-bys8 --- flext-infra | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/flext-infra b/flext-infra index 7848c29cd..d31a7cb0e 160000 --- a/flext-infra +++ b/flext-infra @@ -1 +1 @@ -Subproject commit 7848c29cd171952e49747f5ea943add4bfd82cd4 +Subproject commit d31a7cb0e63e05da696e5e76209df4430d9036dc From c0ec6743aeb168cfb464e50708b0caccd5680fd1 Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Mon, 3 Aug 2026 18:17:18 -0300 Subject: [PATCH 22/23] chore(workspace): advance flext-infra gitlink for disabled 0.20 rule backport Points at flext-infra 439c402b: backports the 0.20.0-dev codemod rule entries in a disabled/inert state so they can be enabled once their target modules land. Beads: mro-bys8 --- flext-infra | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/flext-infra b/flext-infra index d31a7cb0e..439c402ba 160000 --- a/flext-infra +++ b/flext-infra @@ -1 +1 @@ -Subproject commit d31a7cb0e63e05da696e5e76209df4430d9036dc +Subproject commit 439c402bac9c7d4d75b33d5d1bd386b19950b4b0 From d600dfaf6be3d5f3a91103212649be277d76ceb7 Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Mon, 3 Aug 2026 18:17:22 -0300 Subject: [PATCH 23/23] chore(workspace): land docs report gitignore and pin member tips Ignore docs verb report artifacts at the workspace root and advance all member gitlinks after the fleet .gitignore landings. Co-authored-by: Cursor --- .gitignore | 8 ++++++++ flext-api | 2 +- flext-auth | 2 +- flext-cli | 2 +- flext-core | 2 +- flext-db-oracle | 2 +- flext-dbt-ldap | 2 +- flext-dbt-ldif | 2 +- flext-dbt-oracle | 2 +- flext-dbt-oracle-wms | 2 +- flext-grpc | 2 +- flext-ldap | 2 +- flext-ldif | 2 +- flext-meltano | 2 +- flext-observability | 2 +- flext-oracle-oic | 2 +- flext-oracle-wms | 2 +- flext-plugin | 2 +- flext-quality | 2 +- flext-tap-ldap | 2 +- flext-tap-ldif | 2 +- flext-tap-oracle | 2 +- flext-tap-oracle-oic | 2 +- flext-tap-oracle-wms | 2 +- flext-target-ldap | 2 +- flext-target-ldif | 2 +- flext-target-oracle | 2 +- flext-target-oracle-oic | 2 +- flext-target-oracle-wms | 2 +- flext-tests | 2 +- flext-web | 2 +- 31 files changed, 38 insertions(+), 30 deletions(-) diff --git a/.gitignore b/.gitignore index 91e4e665f..68edf18f5 100644 --- a/.gitignore +++ b/.gitignore @@ -182,6 +182,14 @@ fix-report.json **/coverage.xml **/*.cover +# Docs verb report artifacts inside docs trees +**/docs/generate-report.md +**/docs/generate-summary.json +**/docs/fix-report.md +**/docs/fix-summary.json +**/docs/audit-report.md +**/docs/audit-summary.json + # Virtual environments inside allowed directories (should never be committed) **/.venv/ **/venv/ diff --git a/flext-api b/flext-api index fc6ae0c84..72f943d2b 160000 --- a/flext-api +++ b/flext-api @@ -1 +1 @@ -Subproject commit fc6ae0c8428799870976327c1ebeda826581e6dd +Subproject commit 72f943d2ba2aba44a1a965e6436638d7f5838265 diff --git a/flext-auth b/flext-auth index 07d7f7247..95737e9d0 160000 --- a/flext-auth +++ b/flext-auth @@ -1 +1 @@ -Subproject commit 07d7f72470a901d9e927d14b30e03b53617c0f9a +Subproject commit 95737e9d0dbd1875902aaef4f45d19d9576b2b95 diff --git a/flext-cli b/flext-cli index c31e0a090..c2a29ddb7 160000 --- a/flext-cli +++ b/flext-cli @@ -1 +1 @@ -Subproject commit c31e0a0904183c86ddb1689616813008aea17a22 +Subproject commit c2a29ddb7c9a7b817d075f053f917e4cd78c9a4f diff --git a/flext-core b/flext-core index 3a681ab03..a707ffa14 160000 --- a/flext-core +++ b/flext-core @@ -1 +1 @@ -Subproject commit 3a681ab036aad40597b281dab3f246cd372e109f +Subproject commit a707ffa142e45180d065351da6069b9241081086 diff --git a/flext-db-oracle b/flext-db-oracle index c796546c8..de518bf56 160000 --- a/flext-db-oracle +++ b/flext-db-oracle @@ -1 +1 @@ -Subproject commit c796546c85ebeab1a2755187304a5a2afb401220 +Subproject commit de518bf568b98f53e4d4e2a0a991b756db1d5cc9 diff --git a/flext-dbt-ldap b/flext-dbt-ldap index eeeb349a7..17466b86c 160000 --- a/flext-dbt-ldap +++ b/flext-dbt-ldap @@ -1 +1 @@ -Subproject commit eeeb349a75c296ffe8667c7a51e6ae276087f1a9 +Subproject commit 17466b86cec61d5323aa1c0e2ad8438f2b98cb17 diff --git a/flext-dbt-ldif b/flext-dbt-ldif index 5b4af1440..cc1a9db30 160000 --- a/flext-dbt-ldif +++ b/flext-dbt-ldif @@ -1 +1 @@ -Subproject commit 5b4af14403e2bf82bf63b9a2d41491bcde042c3a +Subproject commit cc1a9db30b3dd0ad25ae4d3e5af54a4bae91c9fc diff --git a/flext-dbt-oracle b/flext-dbt-oracle index c999fafc4..3fdf02545 160000 --- a/flext-dbt-oracle +++ b/flext-dbt-oracle @@ -1 +1 @@ -Subproject commit c999fafc485b91e08044ea73ffca0c1a2da08f87 +Subproject commit 3fdf02545055d05bb71e50eb58192f7ac4f9f629 diff --git a/flext-dbt-oracle-wms b/flext-dbt-oracle-wms index 515a1b0fb..e9f13aa4d 160000 --- a/flext-dbt-oracle-wms +++ b/flext-dbt-oracle-wms @@ -1 +1 @@ -Subproject commit 515a1b0fbf93665b525a36a6c5327d6e8d000db3 +Subproject commit e9f13aa4d7e11b12dd9a308a035740df33d26121 diff --git a/flext-grpc b/flext-grpc index 3ebf45440..ed0d39bc4 160000 --- a/flext-grpc +++ b/flext-grpc @@ -1 +1 @@ -Subproject commit 3ebf45440ef870b98c24cb4aae00d87bbcd02510 +Subproject commit ed0d39bc408c2380f7dc7bb32c5f6db0946af5bf diff --git a/flext-ldap b/flext-ldap index 765619ef6..fb0de4262 160000 --- a/flext-ldap +++ b/flext-ldap @@ -1 +1 @@ -Subproject commit 765619ef6ba4275b81dab7418fb6e7368965f8f1 +Subproject commit fb0de4262e2fd21c3f63f2c8fa9a8a59d8a5a979 diff --git a/flext-ldif b/flext-ldif index fcb9dd326..40ab623a8 160000 --- a/flext-ldif +++ b/flext-ldif @@ -1 +1 @@ -Subproject commit fcb9dd3265b2941a6d876333737c0d46d07c3553 +Subproject commit 40ab623a8ffdfc4d5952c8f9fc45e6159c0dcc67 diff --git a/flext-meltano b/flext-meltano index c8e37123c..748821a2d 160000 --- a/flext-meltano +++ b/flext-meltano @@ -1 +1 @@ -Subproject commit c8e37123c7f0487ec2aaf2701bee3f48036d818e +Subproject commit 748821a2db3ebd1b9bd6331b8cad44fcd0634e71 diff --git a/flext-observability b/flext-observability index 5b5d0dd7a..6aba87345 160000 --- a/flext-observability +++ b/flext-observability @@ -1 +1 @@ -Subproject commit 5b5d0dd7ab2a8618a5c48bb2e612691495c53098 +Subproject commit 6aba87345e9ff58b889b4c4cc1d50f041b5ac58e diff --git a/flext-oracle-oic b/flext-oracle-oic index 8a698e890..85bd3ec5f 160000 --- a/flext-oracle-oic +++ b/flext-oracle-oic @@ -1 +1 @@ -Subproject commit 8a698e890f3b163f12396a5f16f0fd7119437796 +Subproject commit 85bd3ec5fe2c2677f8f0e744bf7711e5da1c3926 diff --git a/flext-oracle-wms b/flext-oracle-wms index eea282501..7d9debfd7 160000 --- a/flext-oracle-wms +++ b/flext-oracle-wms @@ -1 +1 @@ -Subproject commit eea2825014725ea5672c63de0115111fbd93c142 +Subproject commit 7d9debfd79c0d4caa76e92cbdb8e49879cc8edc4 diff --git a/flext-plugin b/flext-plugin index 8092fc0e6..db6686b19 160000 --- a/flext-plugin +++ b/flext-plugin @@ -1 +1 @@ -Subproject commit 8092fc0e6c005fa74c2a0778b6a3bc39f41dcbe8 +Subproject commit db6686b191ab6cc9d171bab5a36736d7f516b1d3 diff --git a/flext-quality b/flext-quality index f835ae61e..0ffaa3ed4 160000 --- a/flext-quality +++ b/flext-quality @@ -1 +1 @@ -Subproject commit f835ae61e4d9109b96c6fb379f834d466d5bd4c2 +Subproject commit 0ffaa3ed42e701d75cd3ffbc4181b5ead0493df7 diff --git a/flext-tap-ldap b/flext-tap-ldap index 62a46a2d8..7a7b788f6 160000 --- a/flext-tap-ldap +++ b/flext-tap-ldap @@ -1 +1 @@ -Subproject commit 62a46a2d837afd503c4efed7659851620c7a6ab7 +Subproject commit 7a7b788f694e53b06e13d2d65e4a362758843b56 diff --git a/flext-tap-ldif b/flext-tap-ldif index 5b226259a..4db073774 160000 --- a/flext-tap-ldif +++ b/flext-tap-ldif @@ -1 +1 @@ -Subproject commit 5b226259a17c40c7b677ade1efe7b919612444ed +Subproject commit 4db07377485fb3733ecd21639585b897555bf154 diff --git a/flext-tap-oracle b/flext-tap-oracle index 6275c68c3..dfb93ea48 160000 --- a/flext-tap-oracle +++ b/flext-tap-oracle @@ -1 +1 @@ -Subproject commit 6275c68c3abb4c7c4e2d8948e8389884b5de41af +Subproject commit dfb93ea487393ab848598f61a8bee278a98bda72 diff --git a/flext-tap-oracle-oic b/flext-tap-oracle-oic index 22ff98571..3298d2798 160000 --- a/flext-tap-oracle-oic +++ b/flext-tap-oracle-oic @@ -1 +1 @@ -Subproject commit 22ff9857193857dc323daa6c889c00d6c0348c37 +Subproject commit 3298d279856e34536416d64fc529526ed5a635c2 diff --git a/flext-tap-oracle-wms b/flext-tap-oracle-wms index afcf37cab..2a9f92278 160000 --- a/flext-tap-oracle-wms +++ b/flext-tap-oracle-wms @@ -1 +1 @@ -Subproject commit afcf37cab0e9d52854330ed4e7eb84bf149b99b4 +Subproject commit 2a9f9227832b33f78a550c3113dd73ff6801858e diff --git a/flext-target-ldap b/flext-target-ldap index 09bf7400d..9af2c5711 160000 --- a/flext-target-ldap +++ b/flext-target-ldap @@ -1 +1 @@ -Subproject commit 09bf7400d344474ad85b03fdeb6b2d3002dcb17a +Subproject commit 9af2c571173adc8fe7466cb587738fe0aae0b031 diff --git a/flext-target-ldif b/flext-target-ldif index 9fbe8c3f5..9ae7d9adf 160000 --- a/flext-target-ldif +++ b/flext-target-ldif @@ -1 +1 @@ -Subproject commit 9fbe8c3f501ecd8b5a9165cce382aef227c0cfea +Subproject commit 9ae7d9adfdd73f341c9c52e47f5ccc1e888ac9ea diff --git a/flext-target-oracle b/flext-target-oracle index ca2c506e1..c265f4d5c 160000 --- a/flext-target-oracle +++ b/flext-target-oracle @@ -1 +1 @@ -Subproject commit ca2c506e109ee74c8a2d847d1b3aabfaebb0da4e +Subproject commit c265f4d5c3bf07ada33ec00a2bc655953c697b5e diff --git a/flext-target-oracle-oic b/flext-target-oracle-oic index 417b06dcc..94d3c267b 160000 --- a/flext-target-oracle-oic +++ b/flext-target-oracle-oic @@ -1 +1 @@ -Subproject commit 417b06dcc92fcb364db754f7a98258e6efc29fef +Subproject commit 94d3c267b69785268ce7436bf69f00b03df2ba89 diff --git a/flext-target-oracle-wms b/flext-target-oracle-wms index aca43f7ce..23eda1f0e 160000 --- a/flext-target-oracle-wms +++ b/flext-target-oracle-wms @@ -1 +1 @@ -Subproject commit aca43f7ce48023c44b727315411b40ed13657a56 +Subproject commit 23eda1f0ea969fead52fe2172ded90f8c20c4fb1 diff --git a/flext-tests b/flext-tests index 285151aa9..7b45bc332 160000 --- a/flext-tests +++ b/flext-tests @@ -1 +1 @@ -Subproject commit 285151aa9dc573ba5f44bdeb5faae582a0c3b478 +Subproject commit 7b45bc3322ed4a074c2fe830761e438c40177e60 diff --git a/flext-web b/flext-web index 139a47979..0d09c20aa 160000 --- a/flext-web +++ b/flext-web @@ -1 +1 @@ -Subproject commit 139a4797925039b755b129c9e10c379ad523ff6c +Subproject commit 0d09c20aa0b3c5a30afd502747f0709f40bc3f55