Skip to content

docs: add config-set-tool change proposal - #12

Merged
avoidwork merged 6 commits into
mainfrom
docs/add-config-set-tool
May 25, 2026
Merged

docs: add config-set-tool change proposal#12
avoidwork merged 6 commits into
mainfrom
docs/add-config-set-tool

Conversation

@avoidwork

@avoidwork avoidwork commented May 25, 2026

Copy link
Copy Markdown
Owner

Description

Implements the config-set-tool change: extracts :config set config mutation logic from src/config/loader.js into a dedicated src/config/mutate.js module, and wires it into a new set skill tool.

Commits

  • docs: add config-set-tool change proposal with design and specs (a0f7f45)
  • feat: extract config mutation into dedicated mutate.js module (aa4e9ee)
  • feat: resolve :config set command path parsing and missing setValue wiring (881f5fb)
  • feat: add path depth limit of 5, fix test import paths (a2b1ec4)
  • feat: update config schema with set skill tool (c38c9ab)
  • chore: finalize config-set-tool spec and tidy up old change (6fe4ef0)

Changes

  • New: src/config/mutate.js — self-contained mutator module exporting:
    • parseValue(str) — boolean/number/string coercion
    • assignPath(obj, path, value) — dot-path mutation with intermediate object creation and depth limit (5)
    • applyDotPathMutation(config, dotPath, valueStr) — full pipeline (parse → clone → assign → validate)
  • New: config-set tool registration via config schema
  • Modified: src/config/loader.js — imports applyDotPathMutation from mutate.js, setConfigValue calls applyDotPathMutation then saveConfig
  • Updated: tests/unit/config/mutate.test.js — 16 tests for all mutator exports
  • Cleaned: tests/unit/config.test.js — removed duplicate mutation engine tests
  • Tidied: archived config-set-tool change, removed stale replace-assistant-label-with-name change

Tests

  • ~207 tests pass (same count, no regressions)
  • 100% coverage maintained

Type of Change

  • Bugfix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • Documentation update
  • Refactor (no functional changes)

Testing

  • npm run test — all tests pass
  • npm run coverage — coverage.txt regenerated, 100% coverage maintained
  • npm run lint — passes clean

Coverage

  • 100% line coverage maintained

Checklist

  • npm run lint passes
  • Tests pass with 100% line coverage
  • No forbidden patterns used
  • Conventional Commit style applied

@avoidwork avoidwork self-assigned this May 25, 2026
@avoidwork
avoidwork merged commit 0a46bbe into main May 25, 2026
@avoidwork
avoidwork deleted the docs/add-config-set-tool branch May 25, 2026 01:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant