@futdevpro/fsm-dynamo 1.20.124 → 1.20.133

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,32 @@
1
+ /**
2
+ * BFR-FLEET-010 (`CFR-FLEET-043`, 2026-10-19) — the ONE list of the agent / documentation paths, for every place that
3
+ * decides "this change is documentation only".
4
+ *
5
+ * Two places decide it today, and they must agree:
6
+ * - the Overseer queue (`DocOnlyPush_Util`): a doc-only PUSH gets the lowest priority;
7
+ * - the `dc` pre-commit steps (`dc sync-fdp-deps`, `dc bump-version`): a doc-only COMMIT gets no dependency and no version
8
+ * bump. Measured 2026-10-19: 41 of the 44 fleet hooks put both into every doc commit (a `USER_INPUT.md` line ⇒ 4-5 files),
9
+ * and the Overseer then let that bedrock bump through as a "doc-only" push.
10
+ *
11
+ * The patterns are the Overseer's `DOC_PATTERNS` of 2026-09-24 (`CFR-FLEET-027`): `CLAUDE.md` / `AGENTS.md` / `SKILLS.md`
12
+ * anywhere, and anything under `__documentations/` or `__agent/` (part of the repo, never gitignored, but never the product).
13
+ * ⚠️ `__agent-workspaces/` is NOT `__agent/` (the slash) — it stays a non-doc path here, like at the Overseer.
14
+ */
15
+ export declare class DyFM_DocOnlyPath_Util {
16
+ /** The agent / documentation paths (repo-relative, `/`-separated; a `\` path is normalized first). */
17
+ static readonly docPatterns: readonly RegExp[];
18
+ /**
19
+ * Whether ONE path is an agent / documentation path.
20
+ *
21
+ * @param filePath a repo-relative path (`/` or `\` separated)
22
+ */
23
+ static isDocPath(filePath: string): boolean;
24
+ /**
25
+ * Whether a change is documentation ONLY: at least one path, and every path is a doc path. An EMPTY list is NOT doc-only
26
+ * (nothing is known ⇒ the caller keeps its usual path).
27
+ *
28
+ * @param filePaths the changed paths
29
+ */
30
+ static isDocOnly(filePaths: readonly string[]): boolean;
31
+ }
32
+ //# sourceMappingURL=doc-only-path.util.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doc-only-path.util.d.ts","sourceRoot":"","sources":["../../../src/_collections/utils/doc-only-path.util.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,qBAAa,qBAAqB;IAEhC,sGAAsG;IACtG,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE,SAAS,MAAM,EAAE,CAI5C;IAEF;;;;OAIG;IACH,MAAM,CAAC,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAM3C;;;;;OAKG;IACH,MAAM,CAAC,SAAS,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO;CAKxD"}
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DyFM_DocOnlyPath_Util = void 0;
4
+ /**
5
+ * BFR-FLEET-010 (`CFR-FLEET-043`, 2026-10-19) — the ONE list of the agent / documentation paths, for every place that
6
+ * decides "this change is documentation only".
7
+ *
8
+ * Two places decide it today, and they must agree:
9
+ * - the Overseer queue (`DocOnlyPush_Util`): a doc-only PUSH gets the lowest priority;
10
+ * - the `dc` pre-commit steps (`dc sync-fdp-deps`, `dc bump-version`): a doc-only COMMIT gets no dependency and no version
11
+ * bump. Measured 2026-10-19: 41 of the 44 fleet hooks put both into every doc commit (a `USER_INPUT.md` line ⇒ 4-5 files),
12
+ * and the Overseer then let that bedrock bump through as a "doc-only" push.
13
+ *
14
+ * The patterns are the Overseer's `DOC_PATTERNS` of 2026-09-24 (`CFR-FLEET-027`): `CLAUDE.md` / `AGENTS.md` / `SKILLS.md`
15
+ * anywhere, and anything under `__documentations/` or `__agent/` (part of the repo, never gitignored, but never the product).
16
+ * ⚠️ `__agent-workspaces/` is NOT `__agent/` (the slash) — it stays a non-doc path here, like at the Overseer.
17
+ */
18
+ class DyFM_DocOnlyPath_Util {
19
+ /** The agent / documentation paths (repo-relative, `/`-separated; a `\` path is normalized first). */
20
+ static docPatterns = [
21
+ /(^|\/)(CLAUDE|AGENTS|SKILLS)\.md$/,
22
+ /(^|\/)__documentations\//,
23
+ /(^|\/)__agent\//,
24
+ ];
25
+ /**
26
+ * Whether ONE path is an agent / documentation path.
27
+ *
28
+ * @param filePath a repo-relative path (`/` or `\` separated)
29
+ */
30
+ static isDocPath(filePath) {
31
+ const normalized = `${filePath ?? ''}`.trim().replace(/\\/g, '/');
32
+ return !!normalized && DyFM_DocOnlyPath_Util.docPatterns.some((pattern) => pattern.test(normalized));
33
+ }
34
+ /**
35
+ * Whether a change is documentation ONLY: at least one path, and every path is a doc path. An EMPTY list is NOT doc-only
36
+ * (nothing is known ⇒ the caller keeps its usual path).
37
+ *
38
+ * @param filePaths the changed paths
39
+ */
40
+ static isDocOnly(filePaths) {
41
+ const paths = (filePaths ?? []).filter((filePath) => !!`${filePath ?? ''}`.trim());
42
+ return paths.length > 0 && paths.every((filePath) => DyFM_DocOnlyPath_Util.isDocPath(filePath));
43
+ }
44
+ }
45
+ exports.DyFM_DocOnlyPath_Util = DyFM_DocOnlyPath_Util;
46
+ //# sourceMappingURL=doc-only-path.util.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doc-only-path.util.js","sourceRoot":"","sources":["../../../src/_collections/utils/doc-only-path.util.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;;;;;;GAaG;AACH,MAAa,qBAAqB;IAEhC,sGAAsG;IACtG,MAAM,CAAU,WAAW,GAAsB;QAC/C,mCAAmC;QACnC,0BAA0B;QAC1B,iBAAiB;KAClB,CAAC;IAEF;;;;OAIG;IACH,MAAM,CAAC,SAAS,CAAC,QAAgB;QAC/B,MAAM,UAAU,GAAW,GAAG,QAAQ,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAE1E,OAAO,CAAC,CAAC,UAAU,IAAI,qBAAqB,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,OAAe,EAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;IACxH,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,SAAS,CAAC,SAA4B;QAC3C,MAAM,KAAK,GAAa,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,QAAgB,EAAW,EAAE,CAAC,CAAC,CAAC,GAAG,QAAQ,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;QAE9G,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,QAAgB,EAAW,EAAE,CAAC,qBAAqB,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;IACnH,CAAC;;AA9BH,sDA+BC"}
@@ -33,6 +33,14 @@ export declare class DyFM_DataPropertySettings_ControlModel<T_Property, T_Data>
33
33
  * every `fdp` command, after the feedback model's owner became optional in BFR-FUTDEVPRO-033).
34
34
  */
35
35
  isOptionalDependency?: boolean;
36
+ /**
37
+ * BFR-CREDIT-100 — a sub-object (`subObjectParams`) that exists ONLY when it holds a value. Without it, an array inside
38
+ * the sub-object gets the database layer's `[]` default on EVERY new document, and with it the sub-object itself
39
+ * (measured, mongoose 8.24.5: a failed payment got `{ invoice: { legalTextVersions: [] } }` and was shown as an
40
+ * invoice). With it, the arrays inside get `[]` only when the sub-object already holds a value. Leave it off where
41
+ * the code relies on the always-present sub-object (e.g. `votes: { pro: [], contra: [] }`).
42
+ */
43
+ isOptionalSubObject?: boolean;
36
44
  /** @deprecated Use isArchiveable; archiveable remains the serialized compatibility key. */
37
45
  archiveable?: DyFM_DeprecatedBooleanAlias;
38
46
  isArchiveable?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"data-property-settings.control-model.d.ts","sourceRoot":"","sources":["../../../src/_models/control-models/data-property-settings.control-model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,uCAAuC,CAAC;AAChF,OAAO,EAAE,2BAA2B,EAAE,MAAM,wCAAwC,CAAC;AACrF,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAE3E,+DAA+D;AAC/D,qBAAa,sCAAsC,CAAC,UAAU,EAAE,MAAM;IAKpE,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,EAAG,uBAAuB,GAAG,MAAM,CAAC;IACxC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,UAAU,CAAC;IAErB,iFAAiF;IACjF,MAAM,CAAC,EAAE,2BAA2B,CAAC;IAC7B,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC3B,qFAAqF;IACrF,QAAQ,CAAC,EAAE,2BAA2B,CAAC;IAC/B,UAAU,CAAC,EAAE,OAAO,CAAC;IAC7B,qFAAqF;IACrF,QAAQ,CAAC,EAAE,2BAA2B,CAAC;IAC/B,UAAU,CAAC,EAAE,OAAO,CAAC;IAC7B,iFAAiF;IACjF,KAAK,CAAC,EAAE,2BAA2B,CAAC;IAC5B,SAAS,CAAC,EAAE,OAAO,CAAC;IAC5B,uFAAuF;IACvF,SAAS,CAAC,EAAE,2BAA2B,CAAC;IAChC,WAAW,CAAC,EAAE,OAAO,CAAC;IAC9B,qFAAqF;IACrF,OAAO,CAAC,EAAE,2BAA2B,CAAC;IAC9B,WAAW,CAAC,EAAE,OAAO,CAAC;IAE9B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B;;;;;OAKG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,2FAA2F;IAC3F,WAAW,CAAC,EAAE,2BAA2B,CAAC;IAClC,aAAa,CAAC,EAAE,OAAO,CAAC;IAChC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,oGAAoG;IACpG,eAAe,CAAC,EAAE,2BAA2B,CAAC;IACtC,kBAAkB,CAAC,EAAE,OAAO,CAAC;IACrC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,mBAAmB,CAAC,GAAG,CAAC,CAAC;IAC3C,oBAAoB,CAAC,EAAE,CAAC,CAAC,aAAa,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC,EAAE,CAAC;CAC9E;AA6BD,gGAAgG;AAChG,OAAO,EAAE,sCAAsC,IAAI,0BAA0B,EAAE,CAAC"}
1
+ {"version":3,"file":"data-property-settings.control-model.d.ts","sourceRoot":"","sources":["../../../src/_models/control-models/data-property-settings.control-model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,uCAAuC,CAAC;AAChF,OAAO,EAAE,2BAA2B,EAAE,MAAM,wCAAwC,CAAC;AACrF,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAE3E,+DAA+D;AAC/D,qBAAa,sCAAsC,CAAC,UAAU,EAAE,MAAM;IAKpE,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,EAAG,uBAAuB,GAAG,MAAM,CAAC;IACxC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,UAAU,CAAC;IAErB,iFAAiF;IACjF,MAAM,CAAC,EAAE,2BAA2B,CAAC;IAC7B,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC3B,qFAAqF;IACrF,QAAQ,CAAC,EAAE,2BAA2B,CAAC;IAC/B,UAAU,CAAC,EAAE,OAAO,CAAC;IAC7B,qFAAqF;IACrF,QAAQ,CAAC,EAAE,2BAA2B,CAAC;IAC/B,UAAU,CAAC,EAAE,OAAO,CAAC;IAC7B,iFAAiF;IACjF,KAAK,CAAC,EAAE,2BAA2B,CAAC;IAC5B,SAAS,CAAC,EAAE,OAAO,CAAC;IAC5B,uFAAuF;IACvF,SAAS,CAAC,EAAE,2BAA2B,CAAC;IAChC,WAAW,CAAC,EAAE,OAAO,CAAC;IAC9B,qFAAqF;IACrF,OAAO,CAAC,EAAE,2BAA2B,CAAC;IAC9B,WAAW,CAAC,EAAE,OAAO,CAAC;IAE9B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B;;;;;OAKG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B;;;;;;OAMG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,2FAA2F;IAC3F,WAAW,CAAC,EAAE,2BAA2B,CAAC;IAClC,aAAa,CAAC,EAAE,OAAO,CAAC;IAChC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,oGAAoG;IACpG,eAAe,CAAC,EAAE,2BAA2B,CAAC;IACtC,kBAAkB,CAAC,EAAE,OAAO,CAAC;IACrC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,mBAAmB,CAAC,GAAG,CAAC,CAAC;IAC3C,oBAAoB,CAAC,EAAE,CAAC,CAAC,aAAa,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC,EAAE,CAAC;CAC9E;AA6BD,gGAAgG;AAChG,OAAO,EAAE,sCAAsC,IAAI,0BAA0B,EAAE,CAAC"}
@@ -30,6 +30,14 @@ class DyFM_DataPropertySettings_ControlModel {
30
30
  * every `fdp` command, after the feedback model's owner became optional in BFR-FUTDEVPRO-033).
31
31
  */
32
32
  isOptionalDependency;
33
+ /**
34
+ * BFR-CREDIT-100 — a sub-object (`subObjectParams`) that exists ONLY when it holds a value. Without it, an array inside
35
+ * the sub-object gets the database layer's `[]` default on EVERY new document, and with it the sub-object itself
36
+ * (measured, mongoose 8.24.5: a failed payment got `{ invoice: { legalTextVersions: [] } }` and was shown as an
37
+ * invoice). With it, the arrays inside get `[]` only when the sub-object already holds a value. Leave it off where
38
+ * the code relies on the always-present sub-object (e.g. `votes: { pro: [], contra: [] }`).
39
+ */
40
+ isOptionalSubObject;
33
41
  /** @deprecated Use isArchiveable; archiveable remains the serialized compatibility key. */
34
42
  archiveable;
35
43
  archiveListAfter;
@@ -1 +1 @@
1
- {"version":3,"file":"data-property-settings.control-model.js","sourceRoot":"","sources":["../../../src/_models/control-models/data-property-settings.control-model.ts"],"names":[],"mappings":";;;AAIA,+DAA+D;AAC/D,MAAa,sCAAsC;IACjD;QACE,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,4BAA4B,EAAE,CAAC,CAAC;IAC/E,CAAC;IAED,GAAG,CAAU;IACb,IAAI,CAAoC;IACxC,YAAY,CAAU;IACtB,OAAO,CAAc;IAErB,iFAAiF;IACjF,MAAM,CAA+B;IAErC,qFAAqF;IACrF,QAAQ,CAA+B;IAEvC,qFAAqF;IACrF,QAAQ,CAA+B;IAEvC,iFAAiF;IACjF,KAAK,CAA+B;IAEpC,uFAAuF;IACvF,SAAS,CAA+B;IAExC,qFAAqF;IACrF,OAAO,CAA+B;IAGtC,kBAAkB,CAAU;IAC5B;;;;;OAKG;IACH,oBAAoB,CAAW;IAC/B,2FAA2F;IAC3F,WAAW,CAA+B;IAE1C,gBAAgB,CAAU;IAC1B,cAAc,CAAY;IAC1B,cAAc,CAAU;IACxB,oGAAoG;IACpG,eAAe,CAA+B;IAE9C,iBAAiB,CAAU;IAC3B,SAAS,CAAU;IACnB,SAAS,CAAU;IACnB,eAAe,CAA4B;IAC3C,oBAAoB,CAAyD;CAC9E;AAnDD,wFAmDC;AA8BkD,4EAA0B;AA5B7E,MAAM,cAAc,GAA2C;IAC7D,CAAE,QAAQ,EAAE,UAAU,CAAE;IACxB,CAAE,UAAU,EAAE,YAAY,CAAE;IAC5B,CAAE,UAAU,EAAE,YAAY,CAAE;IAC5B,CAAE,OAAO,EAAE,WAAW,CAAE;IACxB,CAAE,WAAW,EAAE,aAAa,CAAE;IAC9B,CAAE,SAAS,EAAE,aAAa,CAAE;IAC5B,CAAE,aAAa,EAAE,eAAe,CAAE;IAClC,CAAE,iBAAiB,EAAE,oBAAoB,CAAE;CAC5C,CAAC;AAEF,cAAc,CAAC,OAAO,CAAC,CAAC,YAAuC,EAAQ,EAAE;IACvE,MAAM,UAAU,GAAW,YAAY,CAAC,CAAC,CAAC,CAAC;IAC3C,MAAM,aAAa,GAAW,YAAY,CAAC,CAAC,CAAC,CAAC;IAE9C,MAAM,CAAC,cAAc,CAAC,sCAAsC,CAAC,SAAS,EAAE,aAAa,EAAE;QACrF,YAAY,EAAE,IAAI;QAClB,UAAU,EAAE,KAAK;QACjB,GAAG,EAAE;YACH,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC;QAC1B,CAAC;QACD,GAAG,EAAE,UAAU,OAA4B;YACzC,IAAI,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC;QAC7B,CAAC;KACF,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"data-property-settings.control-model.js","sourceRoot":"","sources":["../../../src/_models/control-models/data-property-settings.control-model.ts"],"names":[],"mappings":";;;AAIA,+DAA+D;AAC/D,MAAa,sCAAsC;IACjD;QACE,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,4BAA4B,EAAE,CAAC,CAAC;IAC/E,CAAC;IAED,GAAG,CAAU;IACb,IAAI,CAAoC;IACxC,YAAY,CAAU;IACtB,OAAO,CAAc;IAErB,iFAAiF;IACjF,MAAM,CAA+B;IAErC,qFAAqF;IACrF,QAAQ,CAA+B;IAEvC,qFAAqF;IACrF,QAAQ,CAA+B;IAEvC,iFAAiF;IACjF,KAAK,CAA+B;IAEpC,uFAAuF;IACvF,SAAS,CAA+B;IAExC,qFAAqF;IACrF,OAAO,CAA+B;IAGtC,kBAAkB,CAAU;IAC5B;;;;;OAKG;IACH,oBAAoB,CAAW;IAC/B;;;;;;OAMG;IACH,mBAAmB,CAAW;IAC9B,2FAA2F;IAC3F,WAAW,CAA+B;IAE1C,gBAAgB,CAAU;IAC1B,cAAc,CAAY;IAC1B,cAAc,CAAU;IACxB,oGAAoG;IACpG,eAAe,CAA+B;IAE9C,iBAAiB,CAAU;IAC3B,SAAS,CAAU;IACnB,SAAS,CAAU;IACnB,eAAe,CAA4B;IAC3C,oBAAoB,CAAyD;CAC9E;AA3DD,wFA2DC;AA8BkD,4EAA0B;AA5B7E,MAAM,cAAc,GAA2C;IAC7D,CAAE,QAAQ,EAAE,UAAU,CAAE;IACxB,CAAE,UAAU,EAAE,YAAY,CAAE;IAC5B,CAAE,UAAU,EAAE,YAAY,CAAE;IAC5B,CAAE,OAAO,EAAE,WAAW,CAAE;IACxB,CAAE,WAAW,EAAE,aAAa,CAAE;IAC9B,CAAE,SAAS,EAAE,aAAa,CAAE;IAC5B,CAAE,aAAa,EAAE,eAAe,CAAE;IAClC,CAAE,iBAAiB,EAAE,oBAAoB,CAAE;CAC5C,CAAC;AAEF,cAAc,CAAC,OAAO,CAAC,CAAC,YAAuC,EAAQ,EAAE;IACvE,MAAM,UAAU,GAAW,YAAY,CAAC,CAAC,CAAC,CAAC;IAC3C,MAAM,aAAa,GAAW,YAAY,CAAC,CAAC,CAAC,CAAC;IAE9C,MAAM,CAAC,cAAc,CAAC,sCAAsC,CAAC,SAAS,EAAE,aAAa,EAAE;QACrF,YAAY,EAAE,IAAI;QAClB,UAAU,EAAE,KAAK;QACjB,GAAG,EAAE;YACH,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC;QAC1B,CAAC;QACD,GAAG,EAAE,UAAU,OAA4B;YACzC,IAAI,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC;QAC7B,CAAC;KACF,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
package/build/index.d.ts CHANGED
@@ -11,6 +11,7 @@ export * from './_collections/utils/json-error-helper.util';
11
11
  export * from './_collections/utils/log.util';
12
12
  export * from './_collections/utils/round-list.util';
13
13
  export * from './_collections/utils/secret-mask.util';
14
+ export * from './_collections/utils/doc-only-path.util';
14
15
  export * from './_collections/utils/object.util';
15
16
  export * from './_collections/utils/require-env.util';
16
17
  export * from './_collections/utils/stack.util';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/build/index.js CHANGED
@@ -17,6 +17,7 @@ tslib_1.__exportStar(require("./_collections/utils/json-error-helper.util"), exp
17
17
  tslib_1.__exportStar(require("./_collections/utils/log.util"), exports);
18
18
  tslib_1.__exportStar(require("./_collections/utils/round-list.util"), exports);
19
19
  tslib_1.__exportStar(require("./_collections/utils/secret-mask.util"), exports);
20
+ tslib_1.__exportStar(require("./_collections/utils/doc-only-path.util"), exports);
20
21
  tslib_1.__exportStar(require("./_collections/utils/object.util"), exports);
21
22
  tslib_1.__exportStar(require("./_collections/utils/require-env.util"), exports);
22
23
  tslib_1.__exportStar(require("./_collections/utils/stack.util"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AACA,cAAc;AACd,wBAAwB;AACxB,oFAA0D;AAC1D,wFAA8D;AAC9D,yFAA+D;AAC/D,iFAAuD;AACvD,+EAAqD;AAErD,oBAAoB;AACpB,0EAAgD;AAChD,0EAAgD;AAChD,yEAA+C;AAC/C,0FAAgE;AAChE,sFAA4D;AAC5D,wEAA8C;AAC9C,+EAAqD;AACrD,gFAAsD;AACtD,2EAAiD;AACjD,gFAAsD;AACtD,0EAAgD;AAChD,2EAAiD;AACjD,gFAAsD;AACtD,yEAA+C;AAC/C,0FAAgE;AAChE,8EAAoD;AACpD,oFAA0D;AAC1D,yFAA+D;AAC/D,kFAAwD;AACxD,qFAA2D;AAC3D,yEAA+C;AAE/C,yBAAyB;AACzB,oFAA0D;AAC1D,8EAAoD;AACpD,gFAAsD;AACtD,sFAA4D;AAC5D,iFAAuD;AAEvD,2BAA2B;AAC3B,yFAA+D;AAC/D,gFAAsD;AACtD,yFAA+D;AAG/D,QAAQ;AACR,4EAAkD;AAClD,wEAA8C;AAC9C,yEAA+C;AAC/C,oEAA0C;AAC1C,qEAA2C;AAC3C,kEAAwC;AACxC,4EAAkD;AAClD,gFAAsD;AACtD,mFAAyD;AACzD,iFAAuD;AAEvD,aAAa;AACb,4EAAkD;AAClD,6EAAmD;AACnD,gFAAsD;AAEtD,aAAa;AACb,yEAA+C;AAC/C,mEAAyC;AACzC,2EAAiD;AAGjD,SAAS;AACT,wBAAwB;AACxB,mGAAyE;AACzE,qGAA2E;AAC3E,sGAA4E;AAC5E,wGAA8E;AAC9E,uFAA6D;AAC7D,mGAAyE;AACzE,oGAA0E;AAC1E,sFAA4D;AAC5D,qFAA2D;AAC3D,6FAAmE;AACnE,+FAAqE;AACrE,gHAAsF;AACtF,4GAAkF;AAElF,6BAA6B;AAC7B,0GAAgF;AAChF,mGAAyE;AACzE,iGAAuE;AAEvE,qBAAqB;AACrB,kFAAwD;AACxD,oFAA0D;AAE1D,oBAAoB;AACpB,oFAA0D;AAC1D,wFAA8D;AAC9D,2FAAiE;AACjE,gGAAsE;AACtE,yFAA+D;AAC/D,8FAAoE;AACpE,4FAAkE;AAClE,8FAAoE;AACpE,+FAAqE;AACrE,mGAAyE;AACzE,kGAAwE;AACxE,+FAAqE;AACrE,gGAAsE;AACtE,+EAAqD;AACrD,uFAA6D;AAC7D,wFAA8D;AAC9D,sFAA4D;AAC5D,uFAA6D;AAC7D,iGAAuE;AACvE,iFAAuD;AAEvD,gCAAgC;AAChC,yGAA+E;AAC/E,qGAA2E;AAE3E,eAAe;AACf,yEAA+C;AAC/C,uEAA6C;AAC7C,yEAA+C;AAC/C,uEAA6C"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AACA,cAAc;AACd,wBAAwB;AACxB,oFAA0D;AAC1D,wFAA8D;AAC9D,yFAA+D;AAC/D,iFAAuD;AACvD,+EAAqD;AAErD,oBAAoB;AACpB,0EAAgD;AAChD,0EAAgD;AAChD,yEAA+C;AAC/C,0FAAgE;AAChE,sFAA4D;AAC5D,wEAA8C;AAC9C,+EAAqD;AACrD,gFAAsD;AACtD,kFAAwD;AACxD,2EAAiD;AACjD,gFAAsD;AACtD,0EAAgD;AAChD,2EAAiD;AACjD,gFAAsD;AACtD,yEAA+C;AAC/C,0FAAgE;AAChE,8EAAoD;AACpD,oFAA0D;AAC1D,yFAA+D;AAC/D,kFAAwD;AACxD,qFAA2D;AAC3D,yEAA+C;AAE/C,yBAAyB;AACzB,oFAA0D;AAC1D,8EAAoD;AACpD,gFAAsD;AACtD,sFAA4D;AAC5D,iFAAuD;AAEvD,2BAA2B;AAC3B,yFAA+D;AAC/D,gFAAsD;AACtD,yFAA+D;AAG/D,QAAQ;AACR,4EAAkD;AAClD,wEAA8C;AAC9C,yEAA+C;AAC/C,oEAA0C;AAC1C,qEAA2C;AAC3C,kEAAwC;AACxC,4EAAkD;AAClD,gFAAsD;AACtD,mFAAyD;AACzD,iFAAuD;AAEvD,aAAa;AACb,4EAAkD;AAClD,6EAAmD;AACnD,gFAAsD;AAEtD,aAAa;AACb,yEAA+C;AAC/C,mEAAyC;AACzC,2EAAiD;AAGjD,SAAS;AACT,wBAAwB;AACxB,mGAAyE;AACzE,qGAA2E;AAC3E,sGAA4E;AAC5E,wGAA8E;AAC9E,uFAA6D;AAC7D,mGAAyE;AACzE,oGAA0E;AAC1E,sFAA4D;AAC5D,qFAA2D;AAC3D,6FAAmE;AACnE,+FAAqE;AACrE,gHAAsF;AACtF,4GAAkF;AAElF,6BAA6B;AAC7B,0GAAgF;AAChF,mGAAyE;AACzE,iGAAuE;AAEvE,qBAAqB;AACrB,kFAAwD;AACxD,oFAA0D;AAE1D,oBAAoB;AACpB,oFAA0D;AAC1D,wFAA8D;AAC9D,2FAAiE;AACjE,gGAAsE;AACtE,yFAA+D;AAC/D,8FAAoE;AACpE,4FAAkE;AAClE,8FAAoE;AACpE,+FAAqE;AACrE,mGAAyE;AACzE,kGAAwE;AACxE,+FAAqE;AACrE,gGAAsE;AACtE,+EAAqD;AACrD,uFAA6D;AAC7D,wFAA8D;AAC9D,sFAA4D;AAC5D,uFAA6D;AAC7D,iGAAuE;AACvE,iFAAuD;AAEvD,gCAAgC;AAChC,yGAA+E;AAC/E,qGAA2E;AAE3E,eAAe;AACf,yEAA+C;AAC/C,uEAA6C;AAC7C,yEAA+C;AAC/C,uEAA6C"}
@@ -0,0 +1,41 @@
1
+ /**
2
+ * BFR-FLEET-010 (`CFR-FLEET-043`, 2026-10-19) — the ONE list of the agent / documentation paths, for every place that
3
+ * decides "this change is documentation only".
4
+ *
5
+ * Two places decide it today, and they must agree:
6
+ * - the Overseer queue (`DocOnlyPush_Util`): a doc-only PUSH gets the lowest priority;
7
+ * - the `dc` pre-commit steps (`dc sync-fdp-deps`, `dc bump-version`): a doc-only COMMIT gets no dependency and no version
8
+ * bump. Measured 2026-10-19: 41 of the 44 fleet hooks put both into every doc commit (a `USER_INPUT.md` line ⇒ 4-5 files),
9
+ * and the Overseer then let that bedrock bump through as a "doc-only" push.
10
+ *
11
+ * The patterns are the Overseer's `DOC_PATTERNS` of 2026-09-24 (`CFR-FLEET-027`): `CLAUDE.md` / `AGENTS.md` / `SKILLS.md`
12
+ * anywhere, and anything under `__documentations/` or `__agent/` (part of the repo, never gitignored, but never the product).
13
+ * ⚠️ `__agent-workspaces/` is NOT `__agent/` (the slash) — it stays a non-doc path here, like at the Overseer.
14
+ */
15
+ export class DyFM_DocOnlyPath_Util {
16
+ /** The agent / documentation paths (repo-relative, `/`-separated; a `\` path is normalized first). */
17
+ static docPatterns = [
18
+ /(^|\/)(CLAUDE|AGENTS|SKILLS)\.md$/,
19
+ /(^|\/)__documentations\//,
20
+ /(^|\/)__agent\//,
21
+ ];
22
+ /**
23
+ * Whether ONE path is an agent / documentation path.
24
+ *
25
+ * @param filePath a repo-relative path (`/` or `\` separated)
26
+ */
27
+ static isDocPath(filePath) {
28
+ const normalized = `${filePath ?? ''}`.trim().replace(/\\/g, '/');
29
+ return !!normalized && DyFM_DocOnlyPath_Util.docPatterns.some((pattern) => pattern.test(normalized));
30
+ }
31
+ /**
32
+ * Whether a change is documentation ONLY: at least one path, and every path is a doc path. An EMPTY list is NOT doc-only
33
+ * (nothing is known ⇒ the caller keeps its usual path).
34
+ *
35
+ * @param filePaths the changed paths
36
+ */
37
+ static isDocOnly(filePaths) {
38
+ const paths = (filePaths ?? []).filter((filePath) => !!`${filePath ?? ''}`.trim());
39
+ return paths.length > 0 && paths.every((filePath) => DyFM_DocOnlyPath_Util.isDocPath(filePath));
40
+ }
41
+ }
@@ -27,6 +27,14 @@ export class DyFM_DataPropertySettings_ControlModel {
27
27
  * every `fdp` command, after the feedback model's owner became optional in BFR-FUTDEVPRO-033).
28
28
  */
29
29
  isOptionalDependency;
30
+ /**
31
+ * BFR-CREDIT-100 — a sub-object (`subObjectParams`) that exists ONLY when it holds a value. Without it, an array inside
32
+ * the sub-object gets the database layer's `[]` default on EVERY new document, and with it the sub-object itself
33
+ * (measured, mongoose 8.24.5: a failed payment got `{ invoice: { legalTextVersions: [] } }` and was shown as an
34
+ * invoice). With it, the arrays inside get `[]` only when the sub-object already holds a value. Leave it off where
35
+ * the code relies on the always-present sub-object (e.g. `votes: { pro: [], contra: [] }`).
36
+ */
37
+ isOptionalSubObject;
30
38
  /** @deprecated Use isArchiveable; archiveable remains the serialized compatibility key. */
31
39
  archiveable;
32
40
  archiveListAfter;
@@ -14,6 +14,7 @@ export * from './_collections/utils/json-error-helper.util';
14
14
  export * from './_collections/utils/log.util';
15
15
  export * from './_collections/utils/round-list.util';
16
16
  export * from './_collections/utils/secret-mask.util';
17
+ export * from './_collections/utils/doc-only-path.util';
17
18
  export * from './_collections/utils/object.util';
18
19
  export * from './_collections/utils/require-env.util';
19
20
  export * from './_collections/utils/stack.util';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@futdevpro/fsm-dynamo",
3
- "version": "1.20.124",
3
+ "version": "1.20.133",
4
4
  "description": "Full Stack Model Collection for Dynamic (NodeJS-Typescript) Framework called Dynamo, by Future Development Ltd.",
5
5
  "DyBu_settings": {
6
6
  "packageType": "full-stack-package",