dreamteamer 0.13.0 → 0.13.1

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.
Files changed (2) hide show
  1. package/package.json +2 -2
  2. package/src/compile.js +9 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dreamteamer",
3
- "version": "0.13.0",
3
+ "version": "0.13.1",
4
4
  "description": "A workspace compiler for coding agents — schema-validated records as plain files over git, compiled into every harness",
5
5
  "license": "Apache-2.0",
6
6
  "author": "Gilad Khen <giladkhen@gmail.com>",
@@ -29,7 +29,7 @@
29
29
  "node": ">=20"
30
30
  },
31
31
  "bin": {
32
- "dreamteamer": "./bin/dreamteamer.js"
32
+ "dreamteamer": "bin/dreamteamer.js"
33
33
  },
34
34
  "files": [
35
35
  "NOTICE",
package/src/compile.js CHANGED
@@ -12,6 +12,7 @@ import { walk, patternRe } from './records.js';
12
12
  import { unknownOperators } from './filter.js';
13
13
  import {
14
14
  normalizeNamespaces, namespaceProblems, unqualifiedProblems, defaultStoragePath, storageOverlaps,
15
+ baseNameOf,
15
16
  } from './namespace.js';
16
17
  // circular on paper in earlier versions — safe: both sides only
17
18
  // call at run time, same pattern as store.js ↔ compile.js.
@@ -717,7 +718,14 @@ export function compile({ root, pkg }) {
717
718
  // browse page, the CLI and the extension then read ONE field instead of each carrying its
718
719
  // own title-caser. Authored values always win — `??=` never overwrites. After the ajv gate
719
720
  // on purpose: a malformed property must fail as a bad schema, not as a TypeError here.
720
- merged.title ??= titleCase(name);
721
+ // ⚠ From the BARE name, not the qualified one. A namespace is the FOLDER a collection sits in,
722
+ // not part of what it is called — every surface that draws the namespace as a folder was
723
+ // otherwise saying it twice on one screen ("R&D > Rnd Prototypes", "Family > Health >
724
+ // Health Documents"). Workspaces had already worked around it by hand-authoring a title on
725
+ // every namespaced collection, which is the tell: a derivation nobody can use is not a
726
+ // default. `baseNameOf` resolves against the DECLARED list, so an undeclared prefix — which
727
+ // is not a namespace — keeps its whole name in the label.
728
+ merged.title ??= titleCase(baseNameOf(name, namespaces));
721
729
  const labelProps = merged.schema?.properties ?? {};
722
730
  // how a RECORD of this collection is labelled — the probe presentation.js has always used
723
731
  // for `meta.title_field`, promoted to an authorable field. Reference fields pointing here