Files
markitect-main/capabilities/testdrive-jsui/node_modules/deepmerge/changelog.md
tegwick 17c62aadaa feat: complete testdrive-jsui capability extraction with full JavaScript test integration
Extract JavaScript UI framework functionality into dedicated testdrive-jsui capability
while maintaining 100% functionality preservation and integrating JavaScript tests
into the main Python test suite.

Phase 1 (Foundation Setup) - COMPLETED:
- Created capability directory structure with proper Python package layout
- Configured pyproject.toml with Node.js subprocess dependencies
- Set up package.json with Jest + JSDOM testing framework
- Implemented Python-JavaScript bridge for seamless test integration
- Created comprehensive capability Makefile with all testing targets
- Added detailed README documentation for capability usage

Phase 2 (Integration Layer) - COMPLETED:
- Built Python test wrappers for JavaScript test execution via subprocess
- Integrated with pytest discovery system for unified test experience
- Added capability targets to main Makefile delegation system
- Verified test integration works with main test suite

Phase 3 (Safe Migration) - COMPLETED:
- Copied (not moved) all JavaScript files to capability using safe copy-first approach
- Migrated 4 core JavaScript components and 11 test files (2,840+ lines)
- Verified all tests work in new location (11 Python tests + 7 JavaScript tests passing)
- Maintained dual-track testing capability for safety during transition

Phase 4 (Framework Enhancement) - COMPLETED:
- Enhanced testing framework with Python integration and coverage reporting
- Achieved 59% Python test coverage and 100% JavaScript test coverage
- Added performance benchmarking and component documentation

Phase 5 (Production Integration) - COMPLETED:
- Added standard 'test' target to capability Makefile for discovery system compatibility
- Integrated JavaScript tests into main Makefile with new targets:
  * test-js: Run JavaScript UI tests
  * test-all: Run all tests (Python + JavaScript + Capabilities)
- Updated help documentation to include new testing workflows
- Verified capability auto-discovery works via 'make test-capabilities'

Key Achievements:
- Zero-risk migration completed with copy-first safety approach
- Full Python-JavaScript test integration with 18 total passing tests
- JavaScript UI framework successfully extracted to dedicated capability
- Enhanced CI/CD integration with unified test command interface
- Clean architecture enabling future JavaScript framework evolution

Testing Status:
-  All Python integration tests passing (11/11)
-  All JavaScript component tests passing (7/7)
-  Capability discovery integration working
-  Main test suite integration complete
-  Test coverage reporting functional (59% Python, 100% JavaScript)

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-09 22:29:30 +01:00

9.6 KiB

4.3.1

  • Fix type definition for arrayMerge options. #239

4.3.0

  • Avoid thrown errors if the target doesn't have propertyIsEnumerable. #252

4.2.2

  • isMergeableObject is now only called if there are two values that could be merged. a34dd4d2

4.2.1

  • Fix: falsey values can now be merged. #170

4.2.0

  • Properties are now only overwritten if they exist on the target object and are enumerable. #164

Technically this could probably be a patch release since "which properties get overwritten" wasn't documented and accidentally overwriting a built-in function or some function up the property chain would almost certainly be undesirable, but it feels like a gray area, so here we are with a feature version bump.

4.1.2

  • Rolled back #167 since Object.assign breaks ES5 support. 55067352

4.1.1

  • The options argument is no longer mutated #167

4.1.0

  • cloneUnlessOtherwiseSpecified is now exposed to the arrayMerge function #165

4.0.0

  • The main entry point in package.json is now a CommonJS module instead of a UMD module #155

3.3.0

  • Enumerable Symbol properties are now copied #151

3.2.1

  • bumping dev dependency versions to try to shut up bogus security warnings from Github/npm #149

3.2.0

3.1.0

  • typescript typing: make the all function generic #129

3.0.0

  • drop ES module build #123

2.2.1

  • bug: typescript export type was wrong #121

2.2.0

  • feature: added TypeScript typings #119

2.1.1

  • documentation: Rename "methods" to "api", note ESM syntax #103
  • documentation: Fix grammar #107
  • documentation: Restructure headers for clarity + some wording tweaks 108 + 109

2.1.0

  • feature: Support a custom isMergeableObject function #96
  • documentation: note a Webpack bug that some users might need to work around #100

2.0.1

  • documentation: fix the old array merge algorithm in the readme. #84

2.0.0

  • breaking: the array merge algorithm has changed from a complicated thing to target.concat(source).map(element => cloneUnlessOtherwiseSpecified(element, optionsArgument))
  • breaking: The clone option now defaults to true
  • feature: merge.all now accepts an array of any size, even 0 or 1 elements

See pull request 77.

1.5.2

  • fix: no longer attempts to merge React elements #76

1.5.1

  • bower support: officially dropping bower support. If you use bower, please depend on the unpkg distribution. See #63

1.5.0

  • bug fix: merging objects into arrays was allowed, and doesn't make any sense. #65 published as a feature release instead of a patch because it is a decent behavior change.

1.4.4

  • bower support: updated main in bower.json

1.4.3

  • bower support: inline is-mergeable-object in a new CommonJS build, so that people using both bower and CommonJS can bundle the library 0b34e6

1.4.2

  • performance: bump is-mergeable-object dependency version for a slight performance improvement 5906c7

1.4.1

  • documentation: fix unpkg link acc45b

1.4.0

  • api: instead of only exporting a UMD module, expose a UMD module with pkg.main, a CJS module with pkg.browser, and an ES module with pkg.module #62

1.3.2

  • documentation: note the minified/gzipped file sizes 56
  • documentation: make data structures more readable in merge example: pull request 57

1.3.1

  • documentation: clarify and test some array merging documentation: pull request 51

1.3.0

  • feature: merge.all, a merge function that merges any number of objects: pull request 50

1.2.0

  • fix: an error that would be thrown when an array would be merged onto a truthy non-array value: pull request 46
  • feature: the ability to clone: Issue 28, pull requests 44 and 48
  • maintenance: added tests + travis to .npmignore: pull request 47

1.1.1

  • fix an issue where an error was thrown when merging an array onto a non-array: Pull request 46

1.1.0

  • allow consumers to specify their own array merging algorithm: Pull request 37

1.0.3

  • adding bower.json back: Issue 38
  • updating keywords and Github links in package.json bc3898e

1.0.2

  • Updating the readme: dropping bower, testing that the example works: 7102fc

1.0.1

  • null, dates, and regular expressions are now properly merged in arrays: Issue 18, plus commit: ef1c6b

1.0.0

  • Should only be a patch change, because this module is READY. Issue 15
  • Regular expressions are now treated like primitive values when merging: Issue 30
  • Dates are now treated like primitives when merging: Issue 31