@fulmenhq/tsfulmen 0.1.13 → 0.2.0

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 (165) hide show
  1. package/CHANGELOG.md +73 -512
  2. package/README.md +111 -28
  3. package/config/crucible-ts/agentic/roles/README.md +76 -0
  4. package/config/crucible-ts/agentic/roles/cicd.yaml +82 -0
  5. package/config/crucible-ts/agentic/roles/dataeng.yaml +104 -0
  6. package/config/crucible-ts/agentic/roles/devlead.yaml +84 -0
  7. package/config/crucible-ts/agentic/roles/devrev.yaml +105 -0
  8. package/config/crucible-ts/agentic/roles/entarch.yaml +101 -0
  9. package/config/crucible-ts/agentic/roles/infoarch.yaml +95 -0
  10. package/config/crucible-ts/agentic/roles/prodmktg.yaml +92 -0
  11. package/config/crucible-ts/agentic/roles/qa.yaml +148 -0
  12. package/config/crucible-ts/agentic/roles/secrev.yaml +101 -0
  13. package/config/crucible-ts/agentic/roles/uxdev.yaml +168 -0
  14. package/config/crucible-ts/branding/ecosystem.yaml +26 -0
  15. package/config/crucible-ts/library/foundry/exit-codes.snapshot.json +26 -0
  16. package/config/crucible-ts/library/foundry/exit-codes.yaml +28 -3
  17. package/config/crucible-ts/library/foundry/patterns.yaml +2 -2
  18. package/config/crucible-ts/library/foundry/signal-resolution-fixtures.yaml +207 -0
  19. package/config/crucible-ts/library/foundry/signals.yaml +21 -0
  20. package/config/crucible-ts/library/foundry/simplified-modes.snapshot.json +9 -1
  21. package/config/crucible-ts/library/{foundry/similarity-fixtures.yaml → similarity/fixtures.yaml} +1 -1
  22. package/config/crucible-ts/library/v1.0.0/module-manifest.yaml +1 -2
  23. package/config/crucible-ts/taxonomy/fixture-catalog.yaml +145 -0
  24. package/config/crucible-ts/taxonomy/languages.yaml +2 -2
  25. package/config/crucible-ts/taxonomy/library/foundry-catalogs/v1.1.0/catalogs.yaml +77 -0
  26. package/config/crucible-ts/taxonomy/library/platform-modules/v1.1.0/modules.yaml +722 -0
  27. package/config/crucible-ts/taxonomy/metrics.yaml +1 -1
  28. package/config/crucible-ts/taxonomy/repository-categories.yaml +134 -1
  29. package/dist/appidentity/index.d.ts +117 -35
  30. package/dist/appidentity/index.js +752 -592
  31. package/dist/appidentity/index.js.map +1 -1
  32. package/dist/config/index.js +118 -6
  33. package/dist/config/index.js.map +1 -1
  34. package/dist/crucible/index.js +118 -6
  35. package/dist/crucible/index.js.map +1 -1
  36. package/dist/errors/index.js +118 -6
  37. package/dist/errors/index.js.map +1 -1
  38. package/dist/foundry/index.d.ts +13 -676
  39. package/dist/foundry/index.js +118 -6
  40. package/dist/foundry/index.js.map +1 -1
  41. package/dist/foundry/similarity/index.d.ts +2 -2
  42. package/dist/fulhash/index.d.ts +64 -12
  43. package/dist/fulhash/index.js +292 -53
  44. package/dist/fulhash/index.js.map +1 -1
  45. package/dist/index.d.ts +2 -2
  46. package/dist/index.js +753 -593
  47. package/dist/index.js.map +1 -1
  48. package/dist/{manager-D27vrdaS.d.ts → manager-CH3fX7zO.d.ts} +1 -1
  49. package/dist/pathfinder/index.js +368 -59
  50. package/dist/pathfinder/index.js.map +1 -1
  51. package/dist/reports/license-inventory.csv +302 -0
  52. package/dist/schema/index.js +118 -6
  53. package/dist/schema/index.js.map +1 -1
  54. package/dist/signals/index.d.ts +675 -0
  55. package/dist/signals/index.js +5790 -0
  56. package/dist/signals/index.js.map +1 -0
  57. package/dist/similarity/index.d.ts +2 -0
  58. package/dist/similarity/index.js +136 -0
  59. package/dist/similarity/index.js.map +1 -0
  60. package/dist/{suggest-Cv7SVQRu.d.ts → suggest-D8LbwtPV.d.ts} +1 -1
  61. package/dist/telemetry/http/index.js +704 -591
  62. package/dist/telemetry/http/index.js.map +1 -1
  63. package/dist/telemetry/index.js +118 -6
  64. package/dist/telemetry/index.js.map +1 -1
  65. package/dist/telemetry/prometheus/index.d.ts +1 -1
  66. package/dist/telemetry/prometheus/index.js +175 -11
  67. package/dist/telemetry/prometheus/index.js.map +1 -1
  68. package/package.json +15 -6
  69. package/schemas/crucible-ts/assessment/v1.0.0/severity-definitions.schema.json +1 -1
  70. package/schemas/crucible-ts/config/fulmen-ecosystem/v1.0.0/fulmen-config-paths.schema.json +1 -1
  71. package/schemas/crucible-ts/config/repository/app-identity/v1.0.0/app-identity.schema.json +3 -3
  72. package/schemas/crucible-ts/config/repository/v1.0.0/lifecycle-phase.json +1 -1
  73. package/schemas/crucible-ts/config/repository-category/codex/v1.0.0/codex-config.schema.json +1 -1
  74. package/schemas/crucible-ts/config/standards/v1.0.0/adr-adoption-status.json +1 -1
  75. package/schemas/crucible-ts/config/standards/v1.0.0/adr-frontmatter.schema.json +3 -3
  76. package/schemas/crucible-ts/config/standards/v1.0.0/adr-lifecycle-status.json +1 -1
  77. package/schemas/crucible-ts/config/sync-keys.schema.yaml +14 -0
  78. package/schemas/crucible-ts/content/ssot-provenance/v1.0.0/ssot-provenance.schema.json +1 -1
  79. package/schemas/crucible-ts/design/README.md +159 -0
  80. package/schemas/crucible-ts/design/core/v1.0.0/component-states.schema.json +204 -0
  81. package/schemas/crucible-ts/design/core/v1.0.0/semantic-colors.schema.json +179 -0
  82. package/schemas/crucible-ts/design/core/v1.0.0/spacing-scale.schema.json +165 -0
  83. package/schemas/crucible-ts/design/core/v1.0.0/typography-roles.schema.json +195 -0
  84. package/schemas/crucible-ts/design/tui/v1.0.0/color-palette.schema.json +303 -0
  85. package/schemas/crucible-ts/design/tui/v1.0.0/component.schema.json +374 -0
  86. package/schemas/crucible-ts/design/tui/v1.0.0/layout.schema.json +272 -0
  87. package/schemas/crucible-ts/design/tui/v1.0.0/theme.schema.json +205 -0
  88. package/schemas/crucible-ts/design/tui/v1.0.0/typography.schema.json +316 -0
  89. package/schemas/crucible-ts/devsecops/lorage-central/activity/v1.0.0/activity.schema.json +1 -1
  90. package/schemas/crucible-ts/devsecops/lorage-central/credentials/v1.0.0/credentials.schema.json +1 -1
  91. package/schemas/crucible-ts/devsecops/lorage-central/policy/v1.0.0/policy.schema.json +1 -1
  92. package/schemas/crucible-ts/devsecops/lorage-central/recipe/v1.0.0/recipe.schema.json +1 -1
  93. package/schemas/crucible-ts/devsecops/lorage-central/runbooks/v1.0.0/runbook.schema.json +1 -1
  94. package/schemas/crucible-ts/devsecops/lorage-central/tenant/v1.0.0/tenant.schema.json +1 -1
  95. package/schemas/crucible-ts/devsecops/secrets/v1.0.0/secrets.schema.json +1 -1
  96. package/schemas/crucible-ts/error-handling/v1.0.0/error-response.schema.json +1 -1
  97. package/schemas/crucible-ts/library/foundry/v1.0.0/country-codes.schema.json +1 -1
  98. package/schemas/crucible-ts/library/foundry/v1.0.0/exit-codes.schema.json +1 -1
  99. package/schemas/crucible-ts/library/foundry/v1.0.0/http-status-groups.schema.json +1 -1
  100. package/schemas/crucible-ts/library/foundry/v1.0.0/mime-types.schema.json +1 -1
  101. package/schemas/crucible-ts/library/foundry/v1.0.0/patterns.schema.json +1 -1
  102. package/schemas/crucible-ts/library/foundry/v1.0.0/signal-resolution-fixtures.schema.json +140 -0
  103. package/schemas/crucible-ts/library/foundry/v1.0.0/signals.schema.json +6 -1
  104. package/schemas/crucible-ts/library/fulencode/v1.0.0/fulencode-config.schema.json +1 -1
  105. package/schemas/crucible-ts/library/fulhash/v1.0.0/checksum-string.schema.json +2 -2
  106. package/schemas/crucible-ts/library/fulhash/v1.0.0/digest.schema.json +61 -1
  107. package/schemas/crucible-ts/library/fulhash/v1.0.0/fixtures.schema.json +1 -1
  108. package/schemas/crucible-ts/library/fulpack/v1.0.0/archive-entry.schema.json +1 -1
  109. package/schemas/crucible-ts/library/fulpack/v1.0.0/archive-info.schema.json +1 -1
  110. package/schemas/crucible-ts/library/fulpack/v1.0.0/archive-manifest.schema.json +2 -2
  111. package/schemas/crucible-ts/library/fulpack/v1.0.0/create-options.schema.json +1 -1
  112. package/schemas/crucible-ts/library/fulpack/v1.0.0/extract-options.schema.json +1 -1
  113. package/schemas/crucible-ts/library/fulpack/v1.0.0/extract-result.schema.json +1 -1
  114. package/schemas/crucible-ts/library/fulpack/v1.0.0/scan-options.schema.json +1 -1
  115. package/schemas/crucible-ts/library/fulpack/v1.0.0/validation-result.schema.json +1 -1
  116. package/schemas/crucible-ts/library/module-manifest/v1.0.0/module-manifest.schema.json +1 -1
  117. package/schemas/crucible-ts/library/{foundry → similarity}/v1.0.0/similarity.schema.json +2 -2
  118. package/schemas/crucible-ts/library/{foundry → similarity}/v2.0.0/similarity.schema.json +2 -2
  119. package/schemas/crucible-ts/observability/metrics/v1.0.0/metrics-event.schema.json +1 -1
  120. package/schemas/crucible-ts/pathfinder/v1.0.0/find-query.schema.json +1 -1
  121. package/schemas/crucible-ts/pathfinder/v1.0.0/finder-config.schema.json +1 -1
  122. package/schemas/crucible-ts/pathfinder/v1.0.0/path-result.schema.json +1 -1
  123. package/schemas/crucible-ts/protocol/http/v1.0.0/error-response.schema.json +1 -1
  124. package/schemas/crucible-ts/protocol/http/v1.0.0/health-response.schema.json +1 -1
  125. package/schemas/crucible-ts/protocol/http/v1.0.0/success-response.schema.json +1 -1
  126. package/schemas/crucible-ts/protocol/http/v1.0.0/version-response.schema.json +1 -1
  127. package/schemas/crucible-ts/server/management/v1.0.0/server-management.schema.json +1 -1
  128. package/schemas/crucible-ts/standards/publishing/v1.0.0/spec-catalog.schema.json +134 -0
  129. package/schemas/crucible-ts/taxonomy/devsecops/auth-methods/v1.0.0/auth-methods-key.schema.json +1 -1
  130. package/schemas/crucible-ts/taxonomy/devsecops/auth-methods/v1.0.0/auth-methods-metadata.schema.json +1 -1
  131. package/schemas/crucible-ts/taxonomy/devsecops/geo/v1.0.0/geo-key.schema.json +1 -1
  132. package/schemas/crucible-ts/taxonomy/devsecops/geo/v1.0.0/geo-metadata.schema.json +1 -1
  133. package/schemas/crucible-ts/taxonomy/devsecops/infra-phases/v1.0.0/infra-phases-key.schema.json +1 -1
  134. package/schemas/crucible-ts/taxonomy/devsecops/infra-phases/v1.0.0/infra-phases-metadata.schema.json +1 -1
  135. package/schemas/crucible-ts/taxonomy/devsecops/infra-providers/v1.0.0/infra-providers-key.schema.json +1 -1
  136. package/schemas/crucible-ts/taxonomy/devsecops/infra-providers/v1.0.0/infra-providers-metadata.schema.json +1 -1
  137. package/schemas/crucible-ts/taxonomy/devsecops/modules/v1.0.0/devsecops-module-entry.schema.json +1 -1
  138. package/schemas/crucible-ts/taxonomy/fixture/v1.0.0/fixture-catalog.schema.json +166 -0
  139. package/schemas/crucible-ts/taxonomy/language/v1.0.0/language-key.schema.json +1 -1
  140. package/schemas/crucible-ts/taxonomy/language/v1.0.0/language-metadata.schema.json +1 -1
  141. package/schemas/crucible-ts/taxonomy/library/foundry-catalogs/v1.1.0/catalog-entry.schema.json +98 -0
  142. package/schemas/crucible-ts/taxonomy/library/fulencode/detection-confidence/v1.0.0/levels.schema.json +1 -1
  143. package/schemas/crucible-ts/taxonomy/library/fulencode/encoding-families/v1.0.0/families.schema.json +1 -1
  144. package/schemas/crucible-ts/taxonomy/library/fulencode/normalization-profiles/v1.0.0/profiles.schema.json +1 -1
  145. package/schemas/crucible-ts/taxonomy/library/fulhash/algorithms/v1.0.0/algorithms.yaml +16 -0
  146. package/schemas/crucible-ts/taxonomy/library/modules/v1.0.0/module-entry.schema.json +1 -1
  147. package/schemas/crucible-ts/taxonomy/library/modules/v1.1.0/module-entry.schema.json +436 -0
  148. package/schemas/crucible-ts/taxonomy/repository-category/v1.0.0/category-key.schema.json +16 -8
  149. package/schemas/crucible-ts/taxonomy/repository-category/v1.0.0/category-metadata.schema.json +1 -1
  150. package/schemas/crucible-ts/upstream/3leaps/PROVENANCE.md +43 -0
  151. package/schemas/crucible-ts/upstream/3leaps/agentic/v0/role-prompt.schema.json +183 -0
  152. package/schemas/crucible-ts/upstream/3leaps/ailink/v0/prompt.schema.json +204 -0
  153. package/schemas/crucible-ts/upstream/3leaps/ailink/v0/search-response.schema.json +152 -0
  154. package/schemas/crucible-ts/upstream/README.md +50 -0
  155. package/schemas/crucible-ts/web/branding/v1.0.0/site-branding.schema.json +1 -1
  156. package/schemas/crucible-ts/web/styling/v1.0.0/site-styling.schema.json +1 -1
  157. package/schemas/crucible-ts/config/goneat/README.md +0 -60
  158. package/schemas/crucible-ts/config/goneat/v1.0.0/dates.yaml +0 -234
  159. package/schemas/crucible-ts/config/goneat/v1.0.0/goneat-config.yaml +0 -344
  160. package/schemas/crucible-ts/config/goneat/v1.0.0/lifecycle-phase.json +0 -20
  161. package/schemas/crucible-ts/config/goneat/v1.0.0/release-phase.json +0 -17
  162. package/schemas/crucible-ts/config/goneat/v1.0.0/security-policy.yaml +0 -178
  163. package/schemas/crucible-ts/config/goneat/v1.0.0/version-policy.schema.yaml +0 -205
  164. package/schemas/crucible-ts/tooling/goneat-tools/v1.0.0/README.md +0 -177
  165. package/schemas/crucible-ts/tooling/goneat-tools/v1.0.0/goneat-tools-config.schema.yaml +0 -146
package/CHANGELOG.md CHANGED
@@ -5,25 +5,89 @@ All notable changes to this project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ <!-- RETENTION POLICY: This file maintains the last 10 releases in reverse chronological order.
9
+ Older releases are archived in docs/releases/v{version}.md -->
10
+
8
11
  ## [Unreleased]
9
12
 
10
- ## [0.1.13] - 2025-11-19
13
+ _No unreleased changes._
14
+
15
+ ## [0.2.0] - 2026-01-13
11
16
 
12
17
  ### Added
13
18
 
14
- - **Enterprise Configuration Loading** (`@fulmenhq/tsfulmen/config`) - Compliant implementation of Fulmen Forge Workhorse "Three-Layer Configuration" pattern:
15
- - **Three Layers**: Defaults (required) User Config (XDG paths) → Environment Variables (prefix-based)
16
- - **Schema Validation**: Optional validation against Crucible-compliant JSON/YAML schemas via AJV
17
- - **Metadata Tracking**: Detailed traceability of active layers, paths, and validation status
18
- - **Type Safety**: Generic `loadConfig<T>` with typed error handling (`ConfigValidationError`)
19
+ - **Trust Anchor Bootstrap** - New `scripts/make-bootstrap.sh` implementing sfetch goneat trust pyramid
20
+ - Cryptographic verification of toolchain via minisign signatures
21
+ - Foundation scope tools installation via `goneat doctor tools --scope foundation`
22
+ - Consistent with pyfulmen/rsfulmen bootstrap patterns
23
+
24
+ - **Package Cooling Policy** (`.goneat/dependencies.yaml`) - Supply chain security controls
25
+ - 7-day cooling period for new packages
26
+ - Minimum download thresholds (100 total, 10 recent)
27
+ - Exception for `@fulmenhq/*` organization packages
28
+ - License compliance: forbidden GPL/LGPL/AGPL/MPL/CDDL
29
+
30
+ - **License Audit Target** (`make license-audit`) - Automated forbidden license detection
31
+ - Generates `dist/reports/license-inventory.csv`
32
+ - Integrated into `make check-all` and pre-push hooks
33
+
34
+ - **Signals Module Entry Point** - New `@fulmenhq/tsfulmen/signals` for direct signal handling access
35
+
36
+ - **Embedded App Identity Fallback** - Resilient identity discovery when `.fulmen/app.yaml` not in ancestor path
19
37
 
20
38
  ### Changed
21
39
 
22
- - **Crucible SSOT** - Updated to v0.2.19 (syncs latest config, docs, and schemas)
40
+ - **Role-Based Agent Model** - Migrated from named identities to functional roles
41
+ - AGENTS.md rewritten for devlead/devrev/infoarch/entarch/secrev roles
42
+ - MAINTAINERS.md updated (removed AI Co-Maintainers section)
43
+ - ADR frontmatter updated to use role slugs
44
+ - Attribution format: `Generated by <Model> via <Interface>` with `Role:` trailer
45
+
46
+ - **Crucible SSOT** - Updated to v0.4.8
47
+ - Role catalog expanded: devlead, devrev, infoarch, entarch, secrev, cicd, dataeng, prodmktg, uxdev, qa
48
+ - Signal resolution standard with cross-language fixtures
49
+ - TUI design system schemas (`schemas/crucible-ts/design/`)
50
+ - OpenAPI spec coverage standard (ADR-0014)
51
+ - Ecosystem branding configuration (`config/crucible-ts/branding/`)
52
+ - Similarity module promoted to dedicated path (`config/crucible-ts/library/similarity/`)
53
+ - Canonical URI resolution standard for spec publishing
54
+
55
+ - **Makefile Refactoring** - Adopted GONEAT_RESOLVE/SFETCH_RESOLVE patterns
56
+ - Bumped GONEAT_VERSION to v0.5.1
57
+ - Pre-push hooks now include `dependencies` category assessment
58
+ - All goneat invocations use consistent resolution logic
59
+
60
+ - **Tools Configuration** (`.goneat/tools.yaml`) - Added foundation scope
61
+ - Tools: actionlint, ripgrep, jq, yq, bun, yamlfmt
62
+ - Platform-specific installer priorities
63
+
64
+ - **YAML Formatting** - Added `.yamlfmt` configuration for consistent YAML styling
23
65
 
24
66
  ---
25
67
 
26
- ## [0.1.12] - 2025-11-18
68
+ ## [0.1.14] - 2025-11-28
69
+
70
+ ### Added
71
+
72
+ - **Unified Hashing Stack** (`@fulmenhq/tsfulmen/fulhash`) - Consolidated hashing implementations on `hash-wasm`
73
+ - Added support for **CRC32** and **CRC32C** algorithms (block and streaming)
74
+ - Implemented `multiHash()` for efficient single-pass multi-algorithm hashing
75
+ - Implemented `verify()` for checksum validation
76
+ - Benchmarked performance: XXH3-128 (~5GB/s), SHA-256 (~2GB/s), CRC (~1.2GB/s)
77
+ - Added comprehensive tests for streaming, concurrency, and encoding handling
78
+
79
+ ### Changed
80
+
81
+ - **Crucible SSOT** - Updated to v0.2.20 (syncs latest fulhash types)
82
+ - **Dependency Cleanup** - Removed `crc-32` and `fast-crc32c` in favor of `hash-wasm` consolidation
83
+ - **Bug Fixes**:
84
+ - Fixed `Digest.parse` to support 8-char CRC checksums
85
+ - Fixed XXH3 encoding handling for non-UTF8 inputs
86
+ - Improved `MultiHashResult` typing and deduplication
87
+
88
+ ---
89
+
90
+ ## [0.1.13] - 2025-11-20
27
91
 
28
92
  ### Fixed
29
93
 
@@ -370,507 +434,4 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
370
434
 
371
435
  ---
372
436
 
373
- ## [0.1.3] - 2025-11-01
374
-
375
- **Foundry Similarity v2.0.0** - Major upgrade to similarity module with multiple distance metrics, normalization presets, WASM-backed performance, and Turkish locale support.
376
-
377
- ### Added
378
-
379
- - **Similarity v2.0.0**: Complete implementation of Crucible Foundry Similarity Standard v2.0.0
380
- - **Multiple Metrics**: Five distance/similarity algorithms
381
- - Levenshtein distance (Wagner-Fischer)
382
- - Damerau-Levenshtein OSA (Optimal String Alignment)
383
- - Damerau-Levenshtein unrestricted (true Damerau)
384
- - Jaro-Winkler similarity with prefix scaling
385
- - Longest common substring (LCS)
386
- - **Normalization Presets**: Four standardized text normalization levels
387
- - `none`: No transformation
388
- - `minimal`: NFC + trim
389
- - `default`: NFC + casefold + trim
390
- - `aggressive`: NFKD + casefold + strip accents + remove punctuation
391
- - **Turkish Locale Support**: Proper İ/i handling via `@3leaps/string-metrics-wasm` v0.3.8
392
- - **Rich Suggestion API**: Enhanced metadata in suggestion results
393
- - `matchedRange`: Character positions for substring matches
394
- - `reason`: Score explanation strings
395
- - `normalizedValue`: Post-normalization text
396
- - **WASM Performance**: 4x faster than pure TypeScript implementation
397
- - Levenshtein: 0.0028ms avg (was 0.059ms)
398
- - Score: 0.0022ms avg (was 0.058ms)
399
- - <1ms p95 target exceeded: 0.004ms p95
400
- - **Comprehensive Testing**: 143 tests including fixture-driven validation
401
- - 76 fixture tests against Crucible v2.0.0 standard
402
- - 67 unit and integration tests
403
- - Build artifacts test prevents WASM bundling
404
-
405
- ### Changed
406
-
407
- - **Similarity API**: Metric parameter added to distance/score functions
408
- - `distance(a, b, metric?)` - specify algorithm
409
- - `score(a, b, metric?)` - normalized similarity with metric selection
410
- - Backward compatible: defaults to `"levenshtein"`
411
- - **Normalization API**: Preset-based interface with backward compatibility
412
- - `normalize(value, preset?, locale?)` - preset string parameter
413
- - Legacy `normalize(value, options)` still supported
414
- - Enhanced with locale parameter for Turkish/Lithuanian/Azeri
415
- - **Suggestion Options**: Extended with v2 parameters
416
- - `metric`: Algorithm selection
417
- - `normalizePreset`: Preset-based normalization
418
- - `preferPrefix`: Jaro-Winkler prefix boost
419
- - Legacy `normalize` boolean still supported
420
-
421
- ### Dependencies
422
-
423
- - Added `@3leaps/string-metrics-wasm` v0.3.8 (WASM-backed algorithms)
424
- - Upgraded normalization to support locale-aware casefolding
425
-
426
- ### Fixed
427
-
428
- - Turkish dotted İ now correctly normalized to lowercase i with `locale: "tr"`
429
- - Build artifacts test prevents accidental WASM bundling (tsup externalization verified)
430
-
431
- ### Documentation
432
-
433
- - Updated `src/foundry/similarity/README.md` with v2 API documentation
434
- - Migration guide for v1 to v2 upgrade
435
- - Performance benchmarks and Unicode support details
436
- - Turkish locale support memo in `.plans/memos/`
437
-
438
- ### Added
439
-
440
- - **Pathfinder Module**: Enterprise filesystem traversal with observability and checksums
441
- - **Core Traversal**: Recursive directory scanning with glob pattern matching
442
- - `includePatterns` and `excludePatterns` for flexible file selection
443
- - `maxDepth` control for traversal depth limiting
444
- - `followSymlinks` and `includeHidden` for advanced filesystem access
445
- - Streaming results via `findIterable()` for memory-efficient large directory processing
446
- - **Ignore File Support**: `.fulmenignore` and `.gitignore` with nested precedence
447
- - Hierarchical ignore pattern loading from directory tree
448
- - Child directory patterns override parent directory rules
449
- - Configurable via `honorIgnoreFiles: boolean`
450
- - **FulHash Integration**: Optional streaming checksum calculation
451
- - Algorithms: `xxh3-128` (default) and `sha256` support
452
- - Streaming implementation prevents memory exhaustion on large files
453
- - Checksum errors handled gracefully with error metadata preservation
454
- - `<10% performance overhead` verified via benchmarks
455
- - **Path Constraints**: Security-focused path validation with enforcement levels
456
- - `EnforcementLevel.STRICT`: Reject violations with FulmenError
457
- - `EnforcementLevel.WARN`: Log warnings and continue operation
458
- - `EnforcementLevel.PERMISSIVE`: No enforcement (default)
459
- - Path traversal attack prevention with root boundary enforcement
460
- - `allowedPrefixes` and `forbiddenPatterns` for fine-grained control
461
- - **Enterprise Observability**: Full integration with TSFulmen infrastructure
462
- - Structured `FulmenError` with correlation IDs and severity levels
463
- - Telemetry metrics: `pathfinder_find_ms`, `pathfinder_security_warnings`
464
- - Progressive logging integration with policy-driven profiles
465
- - Schema validation via existing TSFulmen schema module
466
- - **Convenience Helpers**: Pre-configured finders for common use cases
467
- - `findConfigFiles()`: Discover YAML/JSON configuration files
468
- - `findSchemaFiles()`: Find `.schema.json` and `.schema.yaml` files
469
- - `findByExtensions()`: Generic extension-based file discovery
470
- - **Cross-Platform Support**: Linux, macOS, Windows compatibility
471
- - Path normalization and separator handling
472
- - Symlink resolution consistent across platforms
473
- - Windows-specific path length and character constraints
474
- - **Comprehensive Testing**: 44 tests with 111 assertions
475
- - Unit tests for all core functionality
476
- - Integration tests with real filesystem operations
477
- - Cross-platform fixture validation
478
- - Performance benchmark verification
479
-
480
- ---
481
-
482
- ## [0.1.2] - 2025-10-25
483
-
484
- **Error Handling, Telemetry, and Core Utilities** - Comprehensive error handling with FulmenError, telemetry instrumentation across modules, FulHash for integrity verification, Similarity utilities, DocScribe for document processing, Progressive Logging, and complete Crucible Shim.
485
-
486
- ### Added
487
-
488
- - **Error Handling Module**: Schema-backed error handling with FulmenError
489
- - `FulmenError` class with immutable data structure and schema validation
490
- - Static constructors: `fromError()`, `wrap()`, `fromData()`
491
- - Schema-compliant JSON serialization via `toJSON()`
492
- - Correlation ID support for distributed tracing
493
- - Severity levels with numeric mapping (critical: 1000, high: 750, medium: 500, low: 250, info: 100)
494
- - Exit code guidance for CLI applications
495
- - Context preservation from wrapped errors
496
- - Type guards: `isFulmenError()`, `isFulmenErrorData()`
497
- - Validator integration for schema compliance checking
498
- - 43 tests covering construction, wrapping, serialization, and validation
499
-
500
- - **Telemetry Module**: Metrics collection and aggregation with OTLP export support
501
- - **Counter**: Monotonically increasing values (`inc()`)
502
- - **Gauge**: Arbitrary point-in-time values (`set()`, `inc()`, `dec()`)
503
- - **Histogram**: Distribution tracking with automatic bucketing
504
- - ADR-0007 compliant buckets for `_ms` metrics: [1, 5, 10, 50, 100, 500, 1000, 5000, 10000]
505
- - Percentile calculations (p50, p95, p99)
506
- - Count, sum, min, max aggregations
507
- - **Global Registry**: Singleton registry accessible via `metrics.counter()`, `metrics.gauge()`, `metrics.histogram()`
508
- - **Export Formats**: OTLP-compatible JSON with RFC3339 timestamps
509
- - **Taxonomy Integration**: Loads metric definitions from `config/crucible-ts/taxonomy/metrics.yaml`
510
- - **Lifecycle Management**: `export()`, `flush()`, `clear()` for metric lifecycle
511
- - **Type Safety**: Full TypeScript types for all metric operations
512
- - 85 tests covering counters, gauges, histograms, registry, and taxonomy
513
-
514
- - **Telemetry Instrumentation**: Observability across config, schema, and crucible modules
515
- - **Config Module Metrics**:
516
- - `config_load_ms` histogram - Directory/file operation timing
517
- - `config_load_errors` counter - Failed operations
518
- - Instrumented: `ensureDirExists()`, `resolveConfigPath()`
519
- - 7 telemetry integration tests
520
- - **Schema Module Metrics**:
521
- - `schema_validations` counter - Successful validations
522
- - `schema_validation_errors` counter - Failed validations
523
- - Instrumented: `validateData()`, `compileSchemaById()`, `validateDataBySchemaId()`, `validateFileBySchemaId()`
524
- - 9 telemetry integration tests
525
- - **Crucible Module Metrics**:
526
- - `foundry_lookup_count` counter - Successful asset loads
527
- - Instrumented: `loadSchemaById()`, `getDocumentation()`, `getConfigDefaults()`
528
- - 8 telemetry integration tests
529
- - **Zero Breaking Changes**: All error types unchanged, telemetry is transparent observation layer
530
- - **Taxonomy Compliance**: All metrics defined in Crucible taxonomy
531
- - 24 total telemetry tests, all existing tests pass
532
-
533
- - **FulHash Module**: Fast, cross-language compatible hashing for integrity verification and checksums
534
- - **Block Hashing API**: One-shot hashing for in-memory data
535
- - `hash()` - Hash strings or byte arrays with configurable algorithm
536
- - `hashString()` - Convenience wrapper for string inputs
537
- - `hashBytes()` - Convenience wrapper for Uint8Array inputs
538
- - Async API supporting both SHA-256 and XXH3-128
539
- - Default algorithm: XXH3-128 (7.5 GB/s throughput, non-cryptographic)
540
- - SHA-256 option for cryptographic integrity (2.4 GB/s throughput)
541
- - **Streaming API**: Incremental hashing for large files without memory pressure
542
- - `createStreamHasher()` - Factory for streaming hash operations
543
- - `update()` - Chainable method for incremental data feeding
544
- - `digest()` - Finalize and return hash digest
545
- - `reset()` - Reuse hasher for multiple operations
546
- - State management preventing incorrect usage patterns
547
- - Concurrency-safe with factory pattern (each hasher owns WASM instance)
548
- - **Digest Operations**: Parse, verify, and compare hash checksums
549
- - `Digest.parse()` - Parse formatted checksums (`algorithm:hex`)
550
- - `Digest.verify()` - Verify data against checksum
551
- - `digest.equals()` - Compare digests for equality
552
- - `digest.formatted` - Standard `algorithm:hex` format
553
- - Immutable digest objects with defensive copying
554
- - **Cross-Language Compatibility**: Matches gofulmen/pyfulmen implementations
555
- - Standard checksum format: `algorithm:lowercase-hex`
556
- - Shared fixture validation (12 fixtures: 6 hash, 4 format, 2 error)
557
- - Consistent error naming across ecosystem
558
- - **High Performance**: Exceeds standard targets by 7-24x
559
- - XXH3-128: 7.5 GB/s on 100MB (target: 1 GB/s)
560
- - SHA-256: 2.4 GB/s on 100MB (target: 100 MB/s)
561
- - Streaming overhead: -33% (faster than block hashing!)
562
- - Small string hashing: <0.5ms per operation (10K ops)
563
- - Concurrent hashing: 1 GB/s aggregate throughput (100 ops)
564
- - **Concurrency Safety**: Factory pattern prevents race conditions
565
- - Each hash operation gets fresh WASM instance
566
- - No shared state between concurrent operations
567
- - Deterministic results under high concurrency
568
- - Stream hashers maintain independent state
569
- - **Error Handling**: Clear, actionable error messages
570
- - `UnsupportedAlgorithmError` - Lists supported algorithms
571
- - `InvalidChecksumFormatError` - Describes expected format
572
- - `InvalidChecksumError` - Explains validation failure
573
- - `DigestStateError` - Prevents incorrect hasher reuse
574
- - All errors extend `FulHashError` base class
575
- - **Package Exports**: Added `@fulmenhq/tsfulmen/fulhash` subpath
576
- - **Comprehensive Testing**: 157 tests across 11 test suites
577
- - Block hashing: 21 tests (SHA-256, XXH3-128, fixtures)
578
- - Streaming API: 20 tests (state management, reset, chaining)
579
- - Digest operations: 30 tests (parse, verify, compare, format)
580
- - Concurrency safety: 17 tests (race conditions, isolation)
581
- - Integration examples: 17 tests (real-world usage patterns)
582
- - Performance benchmarks: 10 tests (throughput, overhead)
583
- - Fixture validation: 12 tests (cross-language parity)
584
- - Error handling: 15 tests (all error conditions)
585
- - Type contracts: 15 tests (TypeScript interface validation)
586
- - **Documentation**: Complete API reference in `src/fulhash/README.md`
587
- - Quick start examples
588
- - Block and streaming usage patterns
589
- - Checksum validation workflows
590
- - Performance characteristics
591
- - Security considerations (crypto vs non-crypto)
592
- - Error handling guide
593
- - Cross-language compatibility notes
594
- - **Type Safety**: Full TypeScript strict mode with exported types
595
- - `Algorithm` enum (SHA256, XXH3_128)
596
- - `Digest` interface (immutable hash result)
597
- - `HashOptions` interface (algorithm, encoding)
598
- - `StreamHasher` interface (update, digest, reset)
599
- - `StreamHasherOptions` interface (algorithm configuration)
600
-
601
- - **Foundry Similarity Module**: Text similarity and normalization utilities implementing Crucible 2025.10.2 standard
602
- - **Levenshtein Distance**: Wagner-Fischer algorithm with O(min(m,n)) space complexity
603
- - `distance()` - Calculate edit distance between strings
604
- - Grapheme cluster support via spread operator
605
- - Handles Unicode, emoji, combining marks correctly
606
- - **Similarity Scoring**: Normalized 0.0-1.0 similarity scores
607
- - `score()` - Calculate normalized similarity (1 - distance/maxLen)
608
- - Empty string handling (returns 1.0 for identical empty strings)
609
- - **Unicode Normalization**: Text normalization with configurable options
610
- - `normalize()` - Trim, case folding, optional accent stripping
611
- - `casefold()` - Unicode-aware lowercase with locale support
612
- - `stripAccents()` - NFD decomposition + combining mark removal
613
- - `equalsIgnoreCase()` - Normalized string comparison
614
- - Turkish locale support (dotted/dotless i handling)
615
- - **Suggestion API**: Ranked suggestions with configurable thresholds
616
- - `suggest()` - Get ranked suggestions with score filtering
617
- - Configurable minScore (default: 0.6), maxSuggestions (default: 3)
618
- - Optional normalization (default: true)
619
- - Score-based sorting with alphabetical tie-breaking
620
- - **High Performance**: <0.1ms p95 latency for 128-character strings (11x faster than <1ms target)
621
- - **Package Exports**: Added `@fulmenhq/tsfulmen/foundry` and `@fulmenhq/tsfulmen/foundry/similarity` subpaths
622
- - **Comprehensive Testing**: 127 tests with fixture-driven validation
623
- - **Type Safety**: Full TypeScript strict mode with exported types (Suggestion, SuggestOptions, NormalizeOptions)
624
- - **Documentation**: Complete API reference in `src/foundry/similarity/README.md`
625
-
626
- - **Progressive Logging Module**: Policy-based logging with profile support (Phase 2 complete)
627
- - **Logging Profiles**: Simple, Standard, Detailed, Audit with automatic policy enforcement
628
- - **Policy Engine**: Enforces allowed fields, metadata, and severity levels per profile
629
- - **Pino Integration**: High-performance structured logging with 9.5.0
630
- - **Middleware System**: Transform events before emission
631
- - **Type Safety**: Full TypeScript types with discriminated unions
632
- - **Package Exports**: Added `@fulmenhq/tsfulmen/logging` subpath
633
- - **Comprehensive Testing**: 83 tests across 6 test suites
634
- - **Documentation**: Complete API reference in `src/logging/README.md`
635
-
636
- - **Crucible Shim Module**: Complete implementation (Phases 1-4)
637
- - **Asset Discovery**: Fast discovery across schemas, docs, config with glob-based filtering
638
- - **Schema Access**: `listSchemas()`, `loadSchemaById()` with kind filtering (api, config, meta, etc.)
639
- - **Documentation Access**: `listDocumentation()`, `getDocumentation()` with metadata extraction
640
- - **Config Defaults**: `listConfigDefaults()`, `getConfigDefaults()` with version matching
641
- - **Version Parsing**: Intelligent version extraction from asset IDs
642
- - **Normalization**: Asset ID to path conversion with category awareness
643
- - **Error Handling**: AssetNotFoundError with similarity-based suggestions (3 suggestions, 60% threshold)
644
- - **Performance**: <250ms full discovery, <5ms individual category discovery
645
- - **Type Safety**: Full TypeScript types for all asset categories
646
- - **Comprehensive Testing**: 96 tests including integration and performance benchmarks
647
-
648
- - **DocScribe Module**: Complete document processing pipeline
649
- - **Format Detection**: Identifies markdown, YAML, JSON, TOML, YAML-stream, and plain text
650
- - Magic number detection (JSON: `{`/`[`, YAML: `---`)
651
- - Heuristic analysis for ambiguous formats
652
- - Frontmatter-aware (distinguishes markdown with YAML from pure YAML)
653
- - YAML stream detection (multiple `---` separators)
654
- - **Frontmatter Processing**: YAML frontmatter parsing with schema awareness
655
- - `parseFrontmatter()` - Extract metadata and body with line tracking
656
- - `stripFrontmatter()` - Remove frontmatter, return body only
657
- - `extractMetadata()` - Metadata extraction only
658
- - Schema-aware normalization (title, author, date, tags, version, etc.)
659
- - Error handling with line/column position information
660
- - Handles empty frontmatter gracefully
661
- - **Header Extraction**: Markdown header parsing with slug generation
662
- - `extractHeaders()` - Extract all headers with level, text, slug, line number
663
- - ATX-style headers (`# Header`) with configurable depth limit
664
- - Customizable slugification function
665
- - Line number tracking for each header
666
- - **Document Splitting**: Multi-document splitting for YAML streams and markdown
667
- - `splitDocuments()` - Split content into individual documents
668
- - YAML stream support (multiple `---` separators)
669
- - Markdown splitting with heuristic detection
670
- - Fence-aware (respects code blocks: ```/~~~)
671
- - Configurable document limit with automatic merging
672
- - Line range tracking for each split
673
- - **Document Inspection**: Comprehensive document analysis
674
- - `inspectDocument()` - Full document metadata, format, headers, sections
675
- - Returns format, frontmatter status, metadata, header count, line count, size
676
- - Estimated section count based on headers
677
- - **Polymorphic Input**: Accepts `string | Uint8Array | ArrayBufferLike`
678
- - UTF-8 decoding with TextDecoder
679
- - Consistent normalization via `normalizeInput()`
680
- - **Type Safety**: Readonly types, discriminated unions, comprehensive error hierarchy
681
- - **Test Coverage**: 4 test suites with fixtures (frontmatter, format, headers, split)
682
-
683
- - **Updated SSOT Dependencies**: Synced artifacts from Crucible
684
- - New schemas: `error-handling/v1.0.0/error-response.schema.json`
685
- - New schemas: `observability/metrics/v1.0.0/metrics-event.schema.json`
686
- - New standards: `library/modules/docscribe.md`, `library/modules/error-handling-propagation.md`, `library/modules/telemetry-metrics.md`
687
- - Updated standards: `devsecops/pre-commit-processes.md`, observability/logging enhancements
688
- - Updated ecosystem docs: Fulmen Forge Workhorse Standard, ecosystem guide
689
-
690
- ### Changed
691
-
692
- - Version bump to 0.1.2
693
- - Updated `docs/tsfulmen_overview.md` with all module statuses
694
- - Updated `package.json` with error, telemetry, fulhash, logging, and docscribe export paths
695
- - Updated README.md with comprehensive usage examples for new modules
696
- - Enhanced test coverage to 981/991 tests passing (98.4% pass rate)
697
-
698
- ### Fixed
699
-
700
- - Linting issues in format.ts and foundry modules
701
- - Performance test thresholds adjusted to realistic values
702
- - YAML detection and stream splitting improvements in docscribe and foundry
703
- - Crucible schemas discovery performance threshold adjustment
704
-
705
- ---
706
-
707
- ## [0.1.1] - 2025-10-20
708
-
709
- **Enterprise Module Implementation** - Implements Config Path API, Schema Validation, and complete Foundry module with pattern catalogs, HTTP status helpers, MIME type detection, and country codes.
710
-
711
- ### Added
712
-
713
- - **Config Path API**: XDG-compliant configuration directory resolution
714
- - `getAppConfigDir()`, `getAppDataDir()`, `getAppCacheDir()` for application directories
715
- - `getFulmenConfigDir()`, `getFulmenDataDir()`, `getFulmenCacheDir()` for ecosystem directories
716
- - Platform-aware path resolution (Linux/XDG, macOS, Windows)
717
- - Security validation for absolute paths and traversal protection
718
- - Comprehensive cross-platform test coverage
719
-
720
- - **Schema Validation Module**: JSON Schema 2020-12 validation with AJV
721
- - `validateDataBySchemaId()` for validating data against Crucible schemas
722
- - `validateFileBySchemaId()` for validating JSON/YAML files
723
- - `getGlobalRegistry()` for accessing schema registry
724
- - `compileSchemaById()` for pre-compiling schemas
725
- - `normalizeSchema()` for schema comparison and validation
726
- - Optional goneat bridge for cross-tool validation parity
727
- - Schema validation CLI (`bunx tsfulmen-schema`) for development
728
- - Draft 2020-12 support with meta-schema loading from Crucible
729
- - 45+ tests covering validation, registry, and goneat bridge
730
-
731
- - **Foundry Module**: Complete pattern catalog implementation
732
- - **Pattern Catalog**: 21 regex/glob patterns with language-specific flags
733
- - `getPattern()`, `getPatternRegex()`, `matchPattern()` for pattern access
734
- - `listPatterns()`, `describePattern()` for catalog exploration
735
- - Deep immutability with frozen objects and defensive copying
736
- - Lazy regex compilation with caching
737
- - Glob pattern support via picomatch
738
- - **HTTP Status Catalog**: 58 HTTP status codes across 5 groups
739
- - `getHttpStatus()` for status lookup
740
- - `isInformational()`, `isSuccess()`, `isRedirection()`, `isClientError()`, `isServerError()` helpers
741
- - `getStatusReason()` for reason phrase lookup
742
- - `listHttpStatuses()` for catalog exploration
743
- - **MIME Type Catalog**: Content-based detection with magic numbers
744
- - Magic number pattern database for JSON, XML, YAML (exact byte matching)
745
- - Heuristic detection for NDJSON, CSV, Protocol Buffers, plain text
746
- - Priority-based detection engine with UTF-8 BOM handling
747
- - Streaming support for Buffer, ReadableStream, Node.js Readable, and file paths
748
- - `detectMimeType()` polymorphic function for all input types
749
- - `detectMimeTypeFromBuffer()` for direct buffer analysis
750
- - `detectMimeTypeFromFile()` with Bun.file() optimization and Node.js fallback
751
- - `detectMimeTypeFromStream()` for Web and Node.js streams
752
- - `matchMagicNumber()` utility for pattern verification
753
- - `getMimeTypeByExtension()` for fast extension-based lookup
754
- - DetectionOptions interface for configurable byte reading and fallback
755
- - 60+ tests for magic number detection across all formats
756
- - Test fixtures for integration testing
757
- - **Country Code Catalog**: ISO 3166 country codes with normalization
758
- - `getCountryByAlpha2()`, `getCountryByAlpha3()`, `getCountryByNumeric()` lookups
759
- - Case-insensitive alpha code matching (US, us, Us all work)
760
- - Numeric code normalization with left-padding (76 → "076")
761
- - `listCountries()` for catalog exploration
762
- - Precomputed indexes for O(1) lookups
763
- - 5 countries in MVP (US, CA, JP, DE, BR)
764
-
765
- - **Foundry Infrastructure**:
766
- - YAML catalog loading with schema validation via AJV
767
- - Fail-fast error handling with descriptive FoundryCatalogError
768
- - Bun-first file loading with Node.js fallback
769
- - `loadAllCatalogs()` for parallel catalog initialization
770
- - Comprehensive test coverage (193 tests across all catalogs)
771
- - Zero runtime dependencies (uses yaml, ajv, picomatch)
772
-
773
- ### Changed
774
-
775
- - Updated README with comprehensive usage examples for all modules
776
- - Enhanced test coverage from 30%+ to 70%+ (292 total tests)
777
- - Improved documentation with API examples and detection strategies
778
-
779
- ### Fixed
780
-
781
- - Foundry loader test regression with readonly Bun global property
782
- - Import ordering and linting issues across all new modules
783
-
784
- ---
785
-
786
- ## [0.1.0] - 2025-10-15
787
-
788
- **Bootstrap Scaffold Release** - Establishes project foundation, governance, and tooling infrastructure. No working module implementations yet.
789
-
790
- **Release Strategy**: TSFulmen follows a progressive upscaling approach:
791
-
792
- - **v0.1.0**: Bootstrap scaffold (this release)
793
- - **v0.1.1 - v0.1.x**: Progressive module implementations (Config Path API, Crucible Shim, Logging, Schema Validation)
794
- - **v0.2.0**: First public release with complete Fulmen Helper Library Standard compliance
795
-
796
- **Not Production Ready**: This release is for maintainer coordination and ecosystem alignment only. First usable release will be v0.2.0.
797
-
798
- ### Added
799
-
800
- - **Project Foundation**: Initial repository structure and governance
801
- - TypeScript library scaffold with src/ layout
802
- - Bun-based dependency management and build tooling
803
- - tsup bundler configuration for ESM/CJS dual exports
804
- - Vitest testing framework with coverage support
805
- - Biome for linting and formatting
806
-
807
- - **Repository Governance**: Complete project governance framework
808
- - AGENTS.md with Module Weaver identity (@module-weaver)
809
- - MAINTAINERS.md with human maintainer roster
810
- - REPOSITORY_SAFETY_PROTOCOLS.md for operational safety
811
- - CONTRIBUTING.md with development guidelines
812
- - MIT LICENSE
813
-
814
- - **Makefile Standard**: FulmenHQ-compliant Makefile with all required standard targets
815
- - Core targets: `bootstrap`, `tools`, `sync-ssot`, `test`, `build`, `build-all`, `clean`
816
- - Quality targets: `lint` (Biome + goneat assess), `fmt` (Biome + goneat format), `typecheck` (tsc)
817
- - Version targets: `version`, `version-set`, `version-bump-{major,minor,patch,calver}`
818
- - Release targets: `release-check`, `release-prepare`, `release-build`
819
- - Hook targets: `precommit`, `prepush`
820
- - ADR targets: `adr-validate`, `adr-new`
821
- - Additional: `test-watch`, `test-coverage`, `bootstrap-force`
822
- - **Split linting approach**: Biome for TS/JS source, goneat for JSON/YAML/Markdown (matches pyfulmen/gofulmen pattern)
823
-
824
- - **SSOT Integration**: Crucible asset synchronization via goneat
825
- - .goneat/ssot-consumer.yaml configuration
826
- - docs/crucible-ts/ for synced documentation
827
- - schemas/crucible-ts/ for synced JSON schemas
828
- - config/crucible-ts/ for synced config defaults
829
- - .crucible/metadata/ for sync metadata
830
-
831
- - **Documentation**: Comprehensive project documentation
832
- - README.md with quick start and architecture overview
833
- - docs/tsfulmen_overview.md with module catalog and roadmap
834
- - docs/development/ with operations, bootstrap, and ADR documentation
835
- - docs/development/adr/ for Architecture Decision Records
836
- - Local ADR index and guidelines
837
- - Ecosystem ADR adoption tracking
838
- - ADR validation and creation tooling via Makefile
839
- - **ADR-0001**: Split linting approach (Biome for TS/JS, goneat for config/docs)
840
- - VSCode workspace configuration for development
841
- - Cross-references to ecosystem standards
842
-
843
- - **Package Configuration**: Modern TypeScript package setup
844
- - package.json with proper exports and scripts
845
- - tsconfig.json with strict TypeScript configuration
846
- - ESM/CJS dual module support
847
- - Type definitions for all exports
848
-
849
- - **Development Tools**: Quality assurance tooling
850
- - Biome configuration (biome.json)
851
- - Vitest configuration (vitest.config.ts)
852
- - Git hooks preparation
853
- - EditorConfig for consistent formatting
854
-
855
- - **Version Management**: Initial versioning infrastructure
856
- - VERSION file (0.1.0)
857
- - LIFECYCLE_PHASE file (alpha)
858
- - Semantic versioning support via Makefile
859
-
860
- ### Changed
861
-
862
- - **Agent Documentation**: Enhanced AGENTS.md with improvements from sibling repos
863
- - Added DO NOT Rules section with TypeScript-specific guidelines
864
- - Enhanced agent identity section with Mission, Capabilities, Communication Channels
865
- - Improved commit attribution examples
866
- - Added Safety Protocols and Development Philosophy sections
867
- - Added Getting Started section for agent interaction
868
-
869
- ### Fixed
870
-
871
- - Repository structure aligned with Fulmen Helper Library Standard
872
- - Cross-language consistency with gofulmen and pyfulmen governance
873
-
874
- ---
875
-
876
- _Note: This changelog tracks the progressive upscaling of TSFulmen through v0.1.x releases._
437
+ <!-- Older releases (v0.1.3 and earlier) archived in docs/releases/ -->