svn-agent-mcp 1.1.1 → 1.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.
- package/CHANGELOG.md +354 -245
- package/README.md +19 -8
- package/SECURITY.md +44 -21
- package/THIRD_PARTY_CHECKSUMS.txt +74 -45
- package/THIRD_PARTY_NOTICES.md +39 -46
- package/bin/api-ms-win-core-console-l1-1-0.dll +0 -0
- package/bin/api-ms-win-core-console-l1-2-0.dll +0 -0
- package/bin/api-ms-win-core-datetime-l1-1-0.dll +0 -0
- package/bin/api-ms-win-core-debug-l1-1-0.dll +0 -0
- package/bin/api-ms-win-core-errorhandling-l1-1-0.dll +0 -0
- package/bin/api-ms-win-core-file-l1-1-0.dll +0 -0
- package/bin/api-ms-win-core-file-l1-2-0.dll +0 -0
- package/bin/api-ms-win-core-file-l2-1-0.dll +0 -0
- package/bin/api-ms-win-core-handle-l1-1-0.dll +0 -0
- package/bin/api-ms-win-core-heap-l1-1-0.dll +0 -0
- package/bin/api-ms-win-core-interlocked-l1-1-0.dll +0 -0
- package/bin/api-ms-win-core-libraryloader-l1-1-0.dll +0 -0
- package/bin/api-ms-win-core-localization-l1-2-0.dll +0 -0
- package/bin/api-ms-win-core-memory-l1-1-0.dll +0 -0
- package/bin/api-ms-win-core-namedpipe-l1-1-0.dll +0 -0
- package/bin/api-ms-win-core-processenvironment-l1-1-0.dll +0 -0
- package/bin/api-ms-win-core-processthreads-l1-1-0.dll +0 -0
- package/bin/api-ms-win-core-processthreads-l1-1-1.dll +0 -0
- package/bin/api-ms-win-core-profile-l1-1-0.dll +0 -0
- package/bin/api-ms-win-core-rtlsupport-l1-1-0.dll +0 -0
- package/bin/api-ms-win-core-string-l1-1-0.dll +0 -0
- package/bin/api-ms-win-core-synch-l1-1-0.dll +0 -0
- package/bin/api-ms-win-core-synch-l1-2-0.dll +0 -0
- package/bin/api-ms-win-core-sysinfo-l1-1-0.dll +0 -0
- package/bin/api-ms-win-core-timezone-l1-1-0.dll +0 -0
- package/bin/api-ms-win-core-util-l1-1-0.dll +0 -0
- package/bin/api-ms-win-core-xstate-l2-1-0.dll +0 -0
- package/bin/api-ms-win-crt-conio-l1-1-0.dll +0 -0
- package/bin/api-ms-win-crt-convert-l1-1-0.dll +0 -0
- package/bin/api-ms-win-crt-environment-l1-1-0.dll +0 -0
- package/bin/api-ms-win-crt-filesystem-l1-1-0.dll +0 -0
- package/bin/api-ms-win-crt-heap-l1-1-0.dll +0 -0
- package/bin/api-ms-win-crt-locale-l1-1-0.dll +0 -0
- package/bin/api-ms-win-crt-math-l1-1-0.dll +0 -0
- package/bin/api-ms-win-crt-multibyte-l1-1-0.dll +0 -0
- package/bin/api-ms-win-crt-private-l1-1-0.dll +0 -0
- package/bin/api-ms-win-crt-process-l1-1-0.dll +0 -0
- package/bin/api-ms-win-crt-runtime-l1-1-0.dll +0 -0
- package/bin/api-ms-win-crt-stdio-l1-1-0.dll +0 -0
- package/bin/api-ms-win-crt-string-l1-1-0.dll +0 -0
- package/bin/api-ms-win-crt-time-l1-1-0.dll +0 -0
- package/bin/api-ms-win-crt-utility-l1-1-0.dll +0 -0
- package/bin/concrt140.dll +0 -0
- package/bin/libapr-1.dll +0 -0
- package/bin/libaprutil-1.dll +0 -0
- package/bin/libsvn_client-1.dll +0 -0
- package/bin/libsvn_delta-1.dll +0 -0
- package/bin/libsvn_diff-1.dll +0 -0
- package/bin/libsvn_fs-1.dll +0 -0
- package/bin/libsvn_fs_fs-1.dll +0 -0
- package/bin/libsvn_fs_util-1.dll +0 -0
- package/bin/libsvn_fs_x-1.dll +0 -0
- package/bin/libsvn_ra-1.dll +0 -0
- package/bin/libsvn_repos-1.dll +0 -0
- package/bin/libsvn_subr-1.dll +0 -0
- package/bin/libsvn_wc-1.dll +0 -0
- package/bin/msvcp140.dll +0 -0
- package/bin/msvcp140_1.dll +0 -0
- package/bin/msvcp140_2.dll +0 -0
- package/bin/msvcp140_codecvt_ids.dll +0 -0
- package/bin/svn.exe +0 -0
- package/bin/svnadmin.exe +0 -0
- package/bin/svnbench.exe +0 -0
- package/bin/svndumpfilter.exe +0 -0
- package/bin/svnfsfs.exe +0 -0
- package/bin/svnlook.exe +0 -0
- package/bin/svnmucc.exe +0 -0
- package/bin/svnrdump.exe +0 -0
- package/bin/svnserve.exe +0 -0
- package/bin/svnsync.exe +0 -0
- package/bin/svnversion.exe +0 -0
- package/bin/ucrtbase.dll +0 -0
- package/bin/vcruntime140.dll +0 -0
- package/dist/envelope.d.ts.map +1 -1
- package/dist/envelope.js +8 -2
- package/dist/envelope.js.map +1 -1
- package/dist/guards.d.ts +2 -0
- package/dist/guards.d.ts.map +1 -1
- package/dist/guards.js +58 -12
- package/dist/guards.js.map +1 -1
- package/dist/index.d.ts +9 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +128 -48
- package/dist/index.js.map +1 -1
- package/dist/parse/blameXml.d.ts +8 -0
- package/dist/parse/blameXml.d.ts.map +1 -0
- package/dist/parse/blameXml.js +37 -0
- package/dist/parse/blameXml.js.map +1 -0
- package/dist/parse/diffText.d.ts +1 -1
- package/dist/parse/diffText.d.ts.map +1 -1
- package/dist/parse/diffText.js +35 -19
- package/dist/parse/diffText.js.map +1 -1
- package/dist/parse/infoXml.d.ts.map +1 -1
- package/dist/parse/infoXml.js +3 -1
- package/dist/parse/infoXml.js.map +1 -1
- package/dist/parse/logXml.d.ts.map +1 -1
- package/dist/parse/logXml.js +3 -1
- package/dist/parse/logXml.js.map +1 -1
- package/dist/parse/statusXml.d.ts.map +1 -1
- package/dist/parse/statusXml.js +4 -2
- package/dist/parse/statusXml.js.map +1 -1
- package/dist/parse/xmlOptions.d.ts +9 -0
- package/dist/parse/xmlOptions.d.ts.map +1 -0
- package/dist/parse/xmlOptions.js +9 -0
- package/dist/parse/xmlOptions.js.map +1 -0
- package/dist/response.d.ts.map +1 -1
- package/dist/response.js +117 -15
- package/dist/response.js.map +1 -1
- package/dist/runner.d.ts +9 -0
- package/dist/runner.d.ts.map +1 -1
- package/dist/runner.js +156 -55
- package/dist/runner.js.map +1 -1
- package/dist/tools/composite.d.ts +6 -0
- package/dist/tools/composite.d.ts.map +1 -1
- package/dist/tools/composite.js +48 -10
- package/dist/tools/composite.js.map +1 -1
- package/dist/tools/diagnose.js +5 -5
- package/dist/tools/diagnose.js.map +1 -1
- package/dist/tools/mutating.d.ts +12 -1
- package/dist/tools/mutating.d.ts.map +1 -1
- package/dist/tools/mutating.js +166 -34
- package/dist/tools/mutating.js.map +1 -1
- package/dist/tools/readonly.d.ts +17 -0
- package/dist/tools/readonly.d.ts.map +1 -1
- package/dist/tools/readonly.js +202 -30
- package/dist/tools/readonly.js.map +1 -1
- package/dist/tools/selfcheck.d.ts +6 -5
- package/dist/tools/selfcheck.d.ts.map +1 -1
- package/dist/tools/selfcheck.js +13 -10
- package/dist/tools/selfcheck.js.map +1 -1
- package/dist/types.d.ts +3 -0
- package/dist/types.d.ts.map +1 -1
- package/docs/MCP_API.json +1504 -0
- package/docs/SPEC.md +1094 -0
- package/package.json +23 -13
- package/third_party_licenses/apache-subversion-windows/APR License.txt +297 -0
- package/third_party_licenses/apache-subversion-windows/APR Util License.txt +404 -0
- package/third_party_licenses/apache-subversion-windows/OpenSSL License.txt +177 -0
- package/third_party_licenses/apache-subversion-windows/Subversion License.txt +262 -0
- package/third_party_licenses/apache-subversion-windows/Subversion NOTICE.txt +34 -0
- package/third_party_licenses/apache-subversion-windows/ZLib License.txt +33 -0
- package/third_party_licenses/dos2unix/COPYING.txt +26 -0
- package/bin/SlikSvn-DB44-20-x64.dll +0 -0
- package/bin/SlikSvn-libapr-1.dll +0 -0
- package/bin/SlikSvn-libaprutil-1.dll +0 -0
- package/bin/SlikSvn-libcrypto-3-x64.dll +0 -0
- package/bin/SlikSvn-libintl.dll +0 -0
- package/bin/SlikSvn-libsasl21.dll +0 -0
- package/bin/SlikSvn-libssl-3-x64.dll +0 -0
- package/bin/SlikSvn-libsvn_client-1.dll +0 -0
- package/bin/SlikSvn-libsvn_delta-1.dll +0 -0
- package/bin/SlikSvn-libsvn_diff-1.dll +0 -0
- package/bin/SlikSvn-libsvn_fs-1.dll +0 -0
- package/bin/SlikSvn-libsvn_fs_base-1.dll +0 -0
- package/bin/SlikSvn-libsvn_fs_fs-1.dll +0 -0
- package/bin/SlikSvn-libsvn_fs_util-1.dll +0 -0
- package/bin/SlikSvn-libsvn_fs_x-1.dll +0 -0
- package/bin/SlikSvn-libsvn_ra-1.dll +0 -0
- package/bin/SlikSvn-libsvn_repos-1.dll +0 -0
- package/bin/SlikSvn-libsvn_subr-1.dll +0 -0
- package/bin/SlikSvn-libsvn_wc-1.dll +0 -0
- package/bin/System64/concrt140.dll +0 -0
- package/bin/System64/msvcp140.dll +0 -0
- package/bin/System64/msvcp140_1.dll +0 -0
- package/bin/System64/msvcp140_2.dll +0 -0
- package/bin/System64/msvcp140_atomic_wait.dll +0 -0
- package/bin/System64/msvcp140_codecvt_ids.dll +0 -0
- package/bin/System64/vccorlib140.dll +0 -0
- package/bin/System64/vcruntime140.dll +0 -0
- package/bin/System64/vcruntime140_1.dll +0 -0
- package/bin/engines/capi.dll +0 -0
- package/bin/libsvnjavahl-1.dll +0 -0
- package/bin/svn-populate-node-origins-index.exe +0 -0
- package/bin/svnauthz-validate.exe +0 -0
- package/bin/svnauthz.exe +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,7 +1,116 @@
|
|
|
1
|
-
# Changelog
|
|
2
|
-
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
3
|
All notable changes to the SVN MCP are recorded here.
|
|
4
4
|
|
|
5
|
+
## [Unreleased]
|
|
6
|
+
|
|
7
|
+
## [1.2.0] - 2026-07-22
|
|
8
|
+
|
|
9
|
+
### Added
|
|
10
|
+
|
|
11
|
+
- Added guarded `svn_delete` with dry-run-by-default behavior, explicit paths, root refusal,
|
|
12
|
+
recursive acknowledgement, `riskAck`, and post-delete status verification.
|
|
13
|
+
- Added canonical `svn_resolve` while retaining `svn_resolved` as a deprecated compatibility alias.
|
|
14
|
+
- Added `svn_snapshot`, bounded `svn_cat`, and paginated `svn_blame` for common audit workflows.
|
|
15
|
+
- Added exact/range revision selectors to `svn_log` and `svn_diff`.
|
|
16
|
+
- Added request-cancellation propagation from MCP calls to buffered and streaming SVN processes.
|
|
17
|
+
|
|
18
|
+
### Changed
|
|
19
|
+
|
|
20
|
+
- Working-copy-root commits now require `allowRoot:true`, and whitespace-only commit messages are
|
|
21
|
+
refused before SVN runs.
|
|
22
|
+
- Agent install instructions now compare the installed version with `npm view` instead of pinning a
|
|
23
|
+
remembered latest version.
|
|
24
|
+
- Builds and typechecks now run on native TypeScript 7 (`tsc` 7.0.2), while the Jest `ts-jest`
|
|
25
|
+
transform keeps the TypeScript 6 compiler through the `@typescript/typescript6` shim (`tsc6`)
|
|
26
|
+
until tooling gains TypeScript 7 API support.
|
|
27
|
+
|
|
28
|
+
### Fixed
|
|
29
|
+
|
|
30
|
+
- Compact revert receipts now identify the default dry-run behavior even when `dryRun` is omitted.
|
|
31
|
+
- Blocked direct imports of files beneath sensitive `.ssh`, `.git`, and `.svn` directories by
|
|
32
|
+
preserving ancestor path segments during guard evaluation.
|
|
33
|
+
- Refused conflicted, obstructed, external, and unknown working-copy states during precommit and
|
|
34
|
+
commit instead of reporting them as committable.
|
|
35
|
+
- Distinguished colons inside date revisions from revision-range separators.
|
|
36
|
+
- Kept the requested lower revision bound across paginated numeric `svn_log` ranges.
|
|
37
|
+
- Contained NUL-byte process launch failures and unexpected tool exceptions in structured MCP
|
|
38
|
+
error envelopes.
|
|
39
|
+
- Kept arbitrary `svn_propset` values out of displayed process commands by passing them through a
|
|
40
|
+
mode-0600 temporary `-F` file.
|
|
41
|
+
- Bounded retained streamed stdout and diff excerpts independently of line and file-summary caps.
|
|
42
|
+
|
|
43
|
+
### Security
|
|
44
|
+
|
|
45
|
+
- Updated transitive dependencies and the MCP HTTP adapter override; `npm audit` reports no known
|
|
46
|
+
vulnerabilities at the moderate threshold.
|
|
47
|
+
- Added regressions for sensitive import ancestors and end-to-end conflicted working-copy refusal.
|
|
48
|
+
|
|
49
|
+
### Packaging
|
|
50
|
+
|
|
51
|
+
- npm artifacts now include `docs/SPEC.md` and a generated `docs/MCP_API.json` tool contract.
|
|
52
|
+
|
|
53
|
+
## [1.1.3] - 2026-07-20
|
|
54
|
+
|
|
55
|
+
### Security
|
|
56
|
+
|
|
57
|
+
- Replaced the SlikSVN payload and its outdated OpenSSL 3.0.16 DLLs with the July 2026
|
|
58
|
+
redistributable VisualSVN Apache Subversion 1.14.5 command-line package.
|
|
59
|
+
- Added complete upstream license and Subversion notice files for the bundled Windows runtime.
|
|
60
|
+
- Redacted secret-like URL values from parsed fields in standard and full MCP responses.
|
|
61
|
+
- Rejected repository policy files larger than 64 KiB and non-regular policy paths before reading
|
|
62
|
+
or parsing them.
|
|
63
|
+
- Made `.git`, `.hg`, `.svn`, and `.ssh` directory contents immutable never-commit paths.
|
|
64
|
+
- Bounded XML entity expansion in all SVN XML parsers and continued to reject external entities.
|
|
65
|
+
- Pinned GitHub Actions to immutable commit hashes.
|
|
66
|
+
|
|
67
|
+
### Fixed
|
|
68
|
+
|
|
69
|
+
- Treated literal `@` characters safely according to each SVN subcommand's operand semantics,
|
|
70
|
+
including VisualSVN's distinct move and copy destination parsing.
|
|
71
|
+
- Refused symbolic links and Windows directory junctions in recursive import/add scans so SVN
|
|
72
|
+
cannot follow them into unscanned external content.
|
|
73
|
+
- Made batched EOL property writes skip already-correct paths while updating the remaining paths.
|
|
74
|
+
- Allowed `eol_fix_verified` dry runs in read-only mode because they do not modify the working copy.
|
|
75
|
+
- Redacted identity-like URL query values including usernames, email addresses, and client IDs.
|
|
76
|
+
- Reported unknown future SVN status values explicitly instead of synthesizing a potentially
|
|
77
|
+
misleading known status code.
|
|
78
|
+
- Required self-check package-root discovery to match the `svn-agent-mcp` package name.
|
|
79
|
+
- Replaced inline benchmark commit messages with temporary `-F` message files.
|
|
80
|
+
- Derived the MCP server version from `package.json` so release version bumps cannot leave the
|
|
81
|
+
running server on stale metadata.
|
|
82
|
+
- Prevented compact self-check from reporting an incomplete runtime layout as available.
|
|
83
|
+
- Removed the per-file fallback process fan-out when a batched EOL property query returns partial
|
|
84
|
+
XML alongside SVN's expected missing-property exit code.
|
|
85
|
+
- Failed EOL checks on genuine property-query errors or malformed XML rather than treating them as
|
|
86
|
+
paths without an EOL property.
|
|
87
|
+
- Built `dist/` automatically before npm packing and made the packed-install smoke test launch the
|
|
88
|
+
installed `svn-agent-mcp` command shim.
|
|
89
|
+
|
|
90
|
+
### Performance
|
|
91
|
+
|
|
92
|
+
- Ran independent startup tool probes concurrently.
|
|
93
|
+
|
|
94
|
+
## [1.1.2] - 2026-07-20
|
|
95
|
+
|
|
96
|
+
### Fixed
|
|
97
|
+
|
|
98
|
+
- Prevented repository policy allow rules from overriding private-key, `.env*`, and `.npmrc`
|
|
99
|
+
never-commit guards.
|
|
100
|
+
- Bounded individual streamed diff lines and per-file summaries, with explicit truncation signals.
|
|
101
|
+
- Mapped buffered SVN output overflow to a scoped diagnostic instead of a generic failure.
|
|
102
|
+
- Added consistent `--` operand separators to SVN commands as defense in depth.
|
|
103
|
+
- Added finite public limits for path arrays, path strings, repository locations, messages, and cursors.
|
|
104
|
+
- Accepted npm 12 and newer without an engine warning while keeping npm 11.16.0 as the minimum.
|
|
105
|
+
- Required `externalDestAck:true` before exporting outside a working copy.
|
|
106
|
+
- Checked mixed revisions at the working-copy root during precommit and commit flows.
|
|
107
|
+
- Based EOL repair proof on complete per-file summaries and applied never-commit guards to EOL props.
|
|
108
|
+
- Skipped `.svn` administrative directories during recursive add/import guard scans.
|
|
109
|
+
|
|
110
|
+
### Documentation
|
|
111
|
+
|
|
112
|
+
- Documented import/export filesystem reach, immutable credential guards, and output-size limits.
|
|
113
|
+
|
|
5
114
|
## [1.1.1] - 2026-07-20
|
|
6
115
|
|
|
7
116
|
### Added
|
|
@@ -59,246 +168,246 @@ All notable changes to the SVN MCP are recorded here.
|
|
|
59
168
|
- Redacted credential-like URL content in compact log/property values and projected repository URLs.
|
|
60
169
|
|
|
61
170
|
## [1.0.0] - 2026-07-08
|
|
62
|
-
|
|
63
|
-
### Changed
|
|
64
|
-
|
|
65
|
-
- Declared the first public open-source release.
|
|
66
|
-
- Bumped the package and MCP server version to `1.0.0`.
|
|
67
|
-
- Added the GitHub clone and `npm run prepare:local` setup flow so automation can install the MCP
|
|
68
|
-
from the repository and configure `current\dist\index.js`.
|
|
69
|
-
|
|
70
|
-
### Packaging
|
|
71
|
-
|
|
72
|
-
- Generated release payloads remain ignored; publish the source tree, root `bin/` runtime payload,
|
|
73
|
-
and third-party notices, then let each clone prepare its own local `current` runtime.
|
|
74
|
-
|
|
75
|
-
## [0.1.15] - 2026-07-08
|
|
76
|
-
|
|
77
|
-
### Added
|
|
78
|
-
|
|
79
|
-
- Added read-only `svn_propget` for explicit working-copy paths.
|
|
80
|
-
- Added guarded `svn_propset` for explicit working-copy paths, with readonly refusal,
|
|
81
|
-
never-commit target checks, bounded property names/values, and `riskAck` for high-risk
|
|
82
|
-
properties such as `svn:ignore`, `svn:global-ignores`, `svn:externals`, and `svn:auto-props`.
|
|
83
|
-
|
|
84
|
-
### Changed
|
|
85
|
-
|
|
86
|
-
- Documented generic SVN property operations so callers do not fall back to raw `svn propget` /
|
|
87
|
-
`svn propset` for routine property-only work.
|
|
88
|
-
|
|
89
|
-
## [0.1.14] - 2026-07-07
|
|
90
|
-
|
|
91
|
-
### Added
|
|
92
|
-
|
|
93
|
-
- CLI failsafe mode (SPEC §15.7): if the MCP fails mechanically (server down, protocol-level
|
|
94
|
-
tool errors, broken bundled runtime), callers fall back to scoped raw `svn` CLI for the rest of
|
|
95
|
-
the session under the same policy rules. Guard refusals are explicitly not failsafe triggers
|
|
96
|
-
and must never be bypassed via CLI; read-only instances stay read-only.
|
|
97
|
-
- `noteFromRun` now reports executable-launch failures (`ENOENT`/`EACCES`/`EPERM`) as
|
|
98
|
-
"MCP svn runtime unavailable" with the failsafe hint, and `svn_diagnose` includes the failsafe
|
|
99
|
-
suggestion when the bundled SVN toolchain is unavailable.
|
|
100
|
-
- Failsafe rules documented in `docs/svnrules.md`.
|
|
101
|
-
|
|
102
|
-
## [0.1.13] - 2026-07-07
|
|
103
|
-
|
|
104
|
-
### Fixed
|
|
105
|
-
|
|
106
|
-
- **Critical:** the server never started when launched through the documented `current`
|
|
107
|
-
junction path — Node resolves the ESM entry module through junctions, so the
|
|
108
|
-
launched-directly check failed and the process exited silently. The check now compares real
|
|
109
|
-
paths; both `current\dist\index.js` and `releases\v<version>\dist\index.js` launches work.
|
|
110
|
-
- `svn_update` parsing no longer reports SVN informational trailers ("Updated to revision N.",
|
|
111
|
-
"At revision N.", "Updating '.':", "Restored ...") as phantom changed paths.
|
|
112
|
-
- `eol_check` and `svn_precommit` return a structured `kind:"not-a-file"` result for directory
|
|
113
|
-
targets instead of rejecting with a raw filesystem error.
|
|
114
|
-
- Streamed stdout/stderr (including the `svn_diff` hot path) now use the same latin1 fallback as
|
|
115
|
-
buffered output for non-UTF8 bytes.
|
|
116
|
-
- Working-copy containment now verifies physical paths, so a junction or symlink under a working
|
|
117
|
-
copy cannot redirect tools to files outside it.
|
|
118
|
-
- Repository-local policy globs are additionally capped on total wildcard count to bound regex
|
|
119
|
-
backtracking.
|
|
120
|
-
- Removed the residual MCP-launch-directory fallback from the read-only working-copy probe.
|
|
121
|
-
|
|
122
|
-
### Verification
|
|
123
|
-
|
|
124
|
-
- Deep audit pass over the v0.1.12 baseline: all 27 accepted audit fixes re-verified in
|
|
125
|
-
source; typecheck, build, 52 Jest tests, and `npm audit` green. Live MCP smoke test over
|
|
126
|
-
stdio (initialize, tools/list, readonly banner) through both junction and real release paths.
|
|
127
|
-
|
|
128
|
-
## [0.1.12] - 2026-07-07
|
|
129
|
-
|
|
130
|
-
### Fixed
|
|
131
|
-
|
|
132
|
-
- Fixed all accepted deep-audit items: credential redaction, non-interactive SVN execution,
|
|
133
|
-
stable locale, streaming timeout/stderr caps, latin1 fallback, parser correctness, ignored-path
|
|
134
|
-
precommit guards, secure message files, split recursive reverts, import/export guards, property
|
|
135
|
-
status/conflict parsing, update tree-conflict parsing, policy validation/caching, nullable
|
|
136
|
-
working-copy roots, and ambiguous no-context read-only calls.
|
|
137
|
-
- `svn_import` now scans source trees for never-commit descendants before invoking SVN.
|
|
138
|
-
- `svn_precommit` and `svn_commit` now treat ignored paths as uncommittable instead of reaching
|
|
139
|
-
later SVN failures.
|
|
140
|
-
|
|
141
|
-
### Performance
|
|
142
|
-
|
|
143
|
-
- Batched `eol_check` property lookup, parallelized independent `svn_diagnose` checks, reduced
|
|
144
|
-
repeated `svn_info` process spawns, and replaced synchronous EOL sniffing and recursive
|
|
145
|
-
directory scans in hot paths.
|
|
146
|
-
|
|
147
|
-
### Documentation
|
|
148
|
-
|
|
149
|
-
- Updated the spec for the v0.1.12 audit fixes.
|
|
150
|
-
|
|
151
|
-
## [0.1.11] - 2026-07-07
|
|
152
|
-
|
|
153
|
-
### Fixed
|
|
154
|
-
|
|
155
|
-
- Repository-local never-commit `deny` rules now override broad repository-local `allow`
|
|
156
|
-
exceptions.
|
|
157
|
-
- Envelope `stdout_summary` and `stderr_summary` now redact URL userinfo and sensitive query
|
|
158
|
-
parameters, not only displayed command strings.
|
|
159
|
-
|
|
160
|
-
### Documentation
|
|
161
|
-
|
|
162
|
-
- Updated docs for the v0.1.11 baseline and recorded the audit fixes.
|
|
163
|
-
|
|
164
|
-
## [0.1.10] - 2026-07-07
|
|
165
|
-
|
|
166
|
-
### Added
|
|
167
|
-
|
|
168
|
-
- Added `svn_diagnose`, a read-only working-copy diagnostic tool for local status, remote status, HEAD info, and latest log reachability.
|
|
169
|
-
- Added regression coverage for successful temp-repository diagnosis and structured non-working-copy diagnosis.
|
|
170
|
-
|
|
171
|
-
### Changed
|
|
172
|
-
|
|
173
|
-
- Expanded SVN error classification for common authentication, network/repository, working-copy lock, and SQLite working-copy database failures.
|
|
174
|
-
- Documented the external SVN MCP comparison: borrow diagnostics and error taxonomy ideas, but keep this MCP's bundled runtime, zero end-user env config, explicit-path commits, readonly mode, no-shell execution, and guarded mutating surface.
|
|
175
|
-
|
|
176
|
-
### Verification
|
|
177
|
-
|
|
178
|
-
- Added targeted tests for the borrowed diagnostic/error-classification behavior.
|
|
179
|
-
|
|
180
|
-
## [0.1.9] - 2026-07-07
|
|
181
|
-
|
|
182
|
-
### Added
|
|
183
|
-
|
|
184
|
-
- Added repo-local `.svn-mcp-policy.json` support for strict never-commit defaults with explicit per-repository allow/deny exceptions.
|
|
185
|
-
- Added streaming diff parsing so `svn_diff` keeps complete per-file counts while capping only `diff_excerpt`.
|
|
186
|
-
- Added URL userinfo and sensitive query-parameter redaction for displayed command strings.
|
|
187
|
-
- Added `allowLarge` to `eol_fix_verified`; oversized files are refused unless the caller explicitly opts in.
|
|
188
|
-
|
|
189
|
-
### Changed
|
|
190
|
-
|
|
191
|
-
- Never-commit generated-folder guards are now segment-aware, blocking nested `bin`, `obj`, `dist`, `node_modules`, `coverage`, `.vs`, and `.cache` folders, including descendants of recursive directory adds.
|
|
192
|
-
- `svn_precommit` now treats `svn_diff` failure as a trust-gate verdict: recoverable EOL failures become `EOL_FIX_NEEDED`, other diff failures become `DIFF_FAILED`.
|
|
193
|
-
- `eol_fix_verified` now returns structured refusals for missing paths, non-files, binary files, and too-large files.
|
|
194
|
-
|
|
195
|
-
### Verification
|
|
196
|
-
|
|
197
|
-
- Added regression coverage for segment-aware guards, policy exceptions, recursive add refusals, redaction, streaming diff counts, precommit diff-failure verdicts, and structured EOL repair refusals.
|
|
198
|
-
|
|
199
|
-
## [0.1.8] - 2026-07-07
|
|
200
|
-
|
|
201
|
-
### Added
|
|
202
|
-
|
|
203
|
-
- `svn_info` now returns parsed `svnversion` details: revision range, local modification flag, switched/partial flags, remote HEAD revision, and stale-base status.
|
|
204
|
-
- `svn_status` now accepts `hideNoise:true` to filter common local runtime clutter such as `node_modules`, `dist`, `current`, `.cache`, and `coverage`.
|
|
205
|
-
- `svn_status` now accepts `includeIgnored:true` for explicit ignored-path audits without making that the daily default.
|
|
206
|
-
- Added `svn_self_check` to report package/runtime version, `current` release pointer, bundled payload counts, startup probe, and packaging-script health.
|
|
207
|
-
- Added a Node `scripts/clean.mjs` and changed `npm run clean` to avoid PowerShell filesystem deletion.
|
|
208
|
-
|
|
209
|
-
### Changed
|
|
210
|
-
|
|
211
|
-
- `npm run release:prepare` now validates release payload counts before repointing `current`.
|
|
212
|
-
- Updated docs to separate MCP-solvable SVN pain points from semantic workflow responsibilities.
|
|
213
|
-
|
|
214
|
-
### Verification
|
|
215
|
-
|
|
216
|
-
- Added regression coverage for mixed-revision metadata, status noise filtering, and self-check output.
|
|
217
|
-
|
|
218
|
-
## [0.1.7] - 2026-07-07
|
|
219
|
-
|
|
220
|
-
### Added
|
|
221
|
-
|
|
222
|
-
- `svn_log` now resolves working-copy paths to repository URLs and queries HEAD when possible, avoiding mixed-revision root log gaps.
|
|
223
|
-
- `svn_diff` now returns EOL diagnostics and `recovery_tool: "eol_fix_verified"` when SVN reports inconsistent line endings.
|
|
224
|
-
- Added `npm run release:prepare`, a Node release packager that copies `dist/` and `bin/` into `releases/v<version>` and repoints `current` without PowerShell copy/junction commands.
|
|
225
|
-
|
|
226
|
-
### Changed
|
|
227
|
-
|
|
228
|
-
- Updated the spec and README for repository-URL log behavior, EOL diff recovery, and the release preparation command.
|
|
229
|
-
|
|
230
|
-
### Verification
|
|
231
|
-
|
|
232
|
-
- Added temp-repository regression tests for mixed-revision root log history and inconsistent-EOL diff recovery.
|
|
233
|
-
|
|
234
|
-
## [0.1.6] - 2026-07-07
|
|
235
|
-
|
|
236
|
-
### Changed
|
|
237
|
-
|
|
238
|
-
- Expanded never-commit guards to block root generated/dependency/cache artifacts: `dist/**`, `node_modules/**`, `coverage/**`, `.cache/**`, and `*.tsbuildinfo`.
|
|
239
|
-
- Tightened `/**` never-commit matching so directory globs do not block unrelated same-prefix files such as `binary.txt`.
|
|
240
|
-
- Updated the spec and SVN rules so the executable guard matrix matches the documented generated-output policy.
|
|
241
|
-
|
|
242
|
-
### Verification
|
|
243
|
-
|
|
244
|
-
- Added a guard regression test that failed before the change and passed after the guard expansion.
|
|
245
|
-
|
|
246
|
-
## [0.1.5] - 2026-07-07
|
|
247
|
-
|
|
248
|
-
### Added
|
|
249
|
-
|
|
250
|
-
- Plug-and-play global client registration: one MCP config can serve multiple SVN working copies.
|
|
251
|
-
- Working-copy inference from absolute path inputs when `cwd` is omitted.
|
|
252
|
-
- `--readonly` launch argument for read-only clients.
|
|
253
|
-
- Regression coverage for absolute-path multi-working-copy use.
|
|
254
|
-
|
|
255
|
-
### Changed
|
|
256
|
-
|
|
257
|
-
- End-user configuration no longer requires environment variables or project-specific launch `cwd`.
|
|
258
|
-
- `SVN_AGENT_*` variables are documented as development/test escape hatches only.
|
|
259
|
-
- README, spec, and ADR docs now describe zero-env setup and multi-working-copy behavior.
|
|
260
|
-
|
|
261
|
-
## [0.1.4] - 2026-07-07
|
|
262
|
-
|
|
263
|
-
### Added
|
|
264
|
-
|
|
265
|
-
- Versioned source-tree `bin/` folder containing the full SlikSVN `bin` payload and full dos2unix `bin` payload.
|
|
266
|
-
- Release `bin/` payload beside `dist/`, including `svn`, `svnadmin`, `svnversion`, `dos2unix`, `unix2dos`, and required DLLs.
|
|
267
|
-
- Bundled executable resolution for SVN and EOL tools, with dev/test overrides.
|
|
268
|
-
|
|
269
|
-
### Changed
|
|
270
|
-
|
|
271
|
-
- Runtime startup and EOL repair no longer depend on PATH for normal use.
|
|
272
|
-
- Tests use bundled SVN binaries for temp-repository setup.
|
|
273
|
-
|
|
274
|
-
## [0.1.3] - 2026-07-07
|
|
275
|
-
|
|
276
|
-
### Added
|
|
277
|
-
|
|
278
|
-
- Guarded `svn_move`, `svn_rename`, and `svn_copy` tools for working-copy paths.
|
|
279
|
-
- Parent-directory creation for move/copy destinations.
|
|
280
|
-
- Integration coverage for move, rename, copy, readonly refusal, and never-commit destination refusal.
|
|
281
|
-
|
|
282
|
-
## [0.1.2] - 2026-07-07
|
|
283
|
-
|
|
284
|
-
### Changed
|
|
285
|
-
|
|
286
|
-
- EOL repair is fully MCP-owned through `unix2dos`/`dos2unix`.
|
|
287
|
-
- `svn_diff` uses `svn diff --internal-diff -x --ignore-eol-style` by default.
|
|
288
|
-
- PowerShell EOL hook guidance was removed from the workflow.
|
|
289
|
-
|
|
290
|
-
## [0.1.1] - 2026-07-07
|
|
291
|
-
|
|
292
|
-
### Fixed
|
|
293
|
-
|
|
294
|
-
- `svn_add` now schedules needed parent directories for explicit nested file paths.
|
|
295
|
-
- `svn_commit` includes scheduled-added parent directories needed for explicit nested file commits.
|
|
296
|
-
|
|
297
|
-
## [0.1.0] - 2026-07-07
|
|
298
|
-
|
|
299
|
-
### Added
|
|
300
|
-
|
|
301
|
-
- Initial generic SVN MCP implementation.
|
|
302
|
-
- Guarded SVN runner, structured envelopes, XML/text parsers, EOL helpers, and guard logic.
|
|
303
|
-
- Read-only, composite, and mutating SVN tool families.
|
|
304
|
-
- Versioned release layout under `releases/v<version>` with a `current` junction.
|
|
171
|
+
|
|
172
|
+
### Changed
|
|
173
|
+
|
|
174
|
+
- Declared the first public open-source release.
|
|
175
|
+
- Bumped the package and MCP server version to `1.0.0`.
|
|
176
|
+
- Added the GitHub clone and `npm run prepare:local` setup flow so automation can install the MCP
|
|
177
|
+
from the repository and configure `current\dist\index.js`.
|
|
178
|
+
|
|
179
|
+
### Packaging
|
|
180
|
+
|
|
181
|
+
- Generated release payloads remain ignored; publish the source tree, root `bin/` runtime payload,
|
|
182
|
+
and third-party notices, then let each clone prepare its own local `current` runtime.
|
|
183
|
+
|
|
184
|
+
## [0.1.15] - 2026-07-08
|
|
185
|
+
|
|
186
|
+
### Added
|
|
187
|
+
|
|
188
|
+
- Added read-only `svn_propget` for explicit working-copy paths.
|
|
189
|
+
- Added guarded `svn_propset` for explicit working-copy paths, with readonly refusal,
|
|
190
|
+
never-commit target checks, bounded property names/values, and `riskAck` for high-risk
|
|
191
|
+
properties such as `svn:ignore`, `svn:global-ignores`, `svn:externals`, and `svn:auto-props`.
|
|
192
|
+
|
|
193
|
+
### Changed
|
|
194
|
+
|
|
195
|
+
- Documented generic SVN property operations so callers do not fall back to raw `svn propget` /
|
|
196
|
+
`svn propset` for routine property-only work.
|
|
197
|
+
|
|
198
|
+
## [0.1.14] - 2026-07-07
|
|
199
|
+
|
|
200
|
+
### Added
|
|
201
|
+
|
|
202
|
+
- CLI failsafe mode (SPEC §15.7): if the MCP fails mechanically (server down, protocol-level
|
|
203
|
+
tool errors, broken bundled runtime), callers fall back to scoped raw `svn` CLI for the rest of
|
|
204
|
+
the session under the same policy rules. Guard refusals are explicitly not failsafe triggers
|
|
205
|
+
and must never be bypassed via CLI; read-only instances stay read-only.
|
|
206
|
+
- `noteFromRun` now reports executable-launch failures (`ENOENT`/`EACCES`/`EPERM`) as
|
|
207
|
+
"MCP svn runtime unavailable" with the failsafe hint, and `svn_diagnose` includes the failsafe
|
|
208
|
+
suggestion when the bundled SVN toolchain is unavailable.
|
|
209
|
+
- Failsafe rules documented in `docs/svnrules.md`.
|
|
210
|
+
|
|
211
|
+
## [0.1.13] - 2026-07-07
|
|
212
|
+
|
|
213
|
+
### Fixed
|
|
214
|
+
|
|
215
|
+
- **Critical:** the server never started when launched through the documented `current`
|
|
216
|
+
junction path — Node resolves the ESM entry module through junctions, so the
|
|
217
|
+
launched-directly check failed and the process exited silently. The check now compares real
|
|
218
|
+
paths; both `current\dist\index.js` and `releases\v<version>\dist\index.js` launches work.
|
|
219
|
+
- `svn_update` parsing no longer reports SVN informational trailers ("Updated to revision N.",
|
|
220
|
+
"At revision N.", "Updating '.':", "Restored ...") as phantom changed paths.
|
|
221
|
+
- `eol_check` and `svn_precommit` return a structured `kind:"not-a-file"` result for directory
|
|
222
|
+
targets instead of rejecting with a raw filesystem error.
|
|
223
|
+
- Streamed stdout/stderr (including the `svn_diff` hot path) now use the same latin1 fallback as
|
|
224
|
+
buffered output for non-UTF8 bytes.
|
|
225
|
+
- Working-copy containment now verifies physical paths, so a junction or symlink under a working
|
|
226
|
+
copy cannot redirect tools to files outside it.
|
|
227
|
+
- Repository-local policy globs are additionally capped on total wildcard count to bound regex
|
|
228
|
+
backtracking.
|
|
229
|
+
- Removed the residual MCP-launch-directory fallback from the read-only working-copy probe.
|
|
230
|
+
|
|
231
|
+
### Verification
|
|
232
|
+
|
|
233
|
+
- Deep audit pass over the v0.1.12 baseline: all 27 accepted audit fixes re-verified in
|
|
234
|
+
source; typecheck, build, 52 Jest tests, and `npm audit` green. Live MCP smoke test over
|
|
235
|
+
stdio (initialize, tools/list, readonly banner) through both junction and real release paths.
|
|
236
|
+
|
|
237
|
+
## [0.1.12] - 2026-07-07
|
|
238
|
+
|
|
239
|
+
### Fixed
|
|
240
|
+
|
|
241
|
+
- Fixed all accepted deep-audit items: credential redaction, non-interactive SVN execution,
|
|
242
|
+
stable locale, streaming timeout/stderr caps, latin1 fallback, parser correctness, ignored-path
|
|
243
|
+
precommit guards, secure message files, split recursive reverts, import/export guards, property
|
|
244
|
+
status/conflict parsing, update tree-conflict parsing, policy validation/caching, nullable
|
|
245
|
+
working-copy roots, and ambiguous no-context read-only calls.
|
|
246
|
+
- `svn_import` now scans source trees for never-commit descendants before invoking SVN.
|
|
247
|
+
- `svn_precommit` and `svn_commit` now treat ignored paths as uncommittable instead of reaching
|
|
248
|
+
later SVN failures.
|
|
249
|
+
|
|
250
|
+
### Performance
|
|
251
|
+
|
|
252
|
+
- Batched `eol_check` property lookup, parallelized independent `svn_diagnose` checks, reduced
|
|
253
|
+
repeated `svn_info` process spawns, and replaced synchronous EOL sniffing and recursive
|
|
254
|
+
directory scans in hot paths.
|
|
255
|
+
|
|
256
|
+
### Documentation
|
|
257
|
+
|
|
258
|
+
- Updated the spec for the v0.1.12 audit fixes.
|
|
259
|
+
|
|
260
|
+
## [0.1.11] - 2026-07-07
|
|
261
|
+
|
|
262
|
+
### Fixed
|
|
263
|
+
|
|
264
|
+
- Repository-local never-commit `deny` rules now override broad repository-local `allow`
|
|
265
|
+
exceptions.
|
|
266
|
+
- Envelope `stdout_summary` and `stderr_summary` now redact URL userinfo and sensitive query
|
|
267
|
+
parameters, not only displayed command strings.
|
|
268
|
+
|
|
269
|
+
### Documentation
|
|
270
|
+
|
|
271
|
+
- Updated docs for the v0.1.11 baseline and recorded the audit fixes.
|
|
272
|
+
|
|
273
|
+
## [0.1.10] - 2026-07-07
|
|
274
|
+
|
|
275
|
+
### Added
|
|
276
|
+
|
|
277
|
+
- Added `svn_diagnose`, a read-only working-copy diagnostic tool for local status, remote status, HEAD info, and latest log reachability.
|
|
278
|
+
- Added regression coverage for successful temp-repository diagnosis and structured non-working-copy diagnosis.
|
|
279
|
+
|
|
280
|
+
### Changed
|
|
281
|
+
|
|
282
|
+
- Expanded SVN error classification for common authentication, network/repository, working-copy lock, and SQLite working-copy database failures.
|
|
283
|
+
- Documented the external SVN MCP comparison: borrow diagnostics and error taxonomy ideas, but keep this MCP's bundled runtime, zero end-user env config, explicit-path commits, readonly mode, no-shell execution, and guarded mutating surface.
|
|
284
|
+
|
|
285
|
+
### Verification
|
|
286
|
+
|
|
287
|
+
- Added targeted tests for the borrowed diagnostic/error-classification behavior.
|
|
288
|
+
|
|
289
|
+
## [0.1.9] - 2026-07-07
|
|
290
|
+
|
|
291
|
+
### Added
|
|
292
|
+
|
|
293
|
+
- Added repo-local `.svn-mcp-policy.json` support for strict never-commit defaults with explicit per-repository allow/deny exceptions.
|
|
294
|
+
- Added streaming diff parsing so `svn_diff` keeps complete per-file counts while capping only `diff_excerpt`.
|
|
295
|
+
- Added URL userinfo and sensitive query-parameter redaction for displayed command strings.
|
|
296
|
+
- Added `allowLarge` to `eol_fix_verified`; oversized files are refused unless the caller explicitly opts in.
|
|
297
|
+
|
|
298
|
+
### Changed
|
|
299
|
+
|
|
300
|
+
- Never-commit generated-folder guards are now segment-aware, blocking nested `bin`, `obj`, `dist`, `node_modules`, `coverage`, `.vs`, and `.cache` folders, including descendants of recursive directory adds.
|
|
301
|
+
- `svn_precommit` now treats `svn_diff` failure as a trust-gate verdict: recoverable EOL failures become `EOL_FIX_NEEDED`, other diff failures become `DIFF_FAILED`.
|
|
302
|
+
- `eol_fix_verified` now returns structured refusals for missing paths, non-files, binary files, and too-large files.
|
|
303
|
+
|
|
304
|
+
### Verification
|
|
305
|
+
|
|
306
|
+
- Added regression coverage for segment-aware guards, policy exceptions, recursive add refusals, redaction, streaming diff counts, precommit diff-failure verdicts, and structured EOL repair refusals.
|
|
307
|
+
|
|
308
|
+
## [0.1.8] - 2026-07-07
|
|
309
|
+
|
|
310
|
+
### Added
|
|
311
|
+
|
|
312
|
+
- `svn_info` now returns parsed `svnversion` details: revision range, local modification flag, switched/partial flags, remote HEAD revision, and stale-base status.
|
|
313
|
+
- `svn_status` now accepts `hideNoise:true` to filter common local runtime clutter such as `node_modules`, `dist`, `current`, `.cache`, and `coverage`.
|
|
314
|
+
- `svn_status` now accepts `includeIgnored:true` for explicit ignored-path audits without making that the daily default.
|
|
315
|
+
- Added `svn_self_check` to report package/runtime version, `current` release pointer, bundled payload counts, startup probe, and packaging-script health.
|
|
316
|
+
- Added a Node `scripts/clean.mjs` and changed `npm run clean` to avoid PowerShell filesystem deletion.
|
|
317
|
+
|
|
318
|
+
### Changed
|
|
319
|
+
|
|
320
|
+
- `npm run release:prepare` now validates release payload counts before repointing `current`.
|
|
321
|
+
- Updated docs to separate MCP-solvable SVN pain points from semantic workflow responsibilities.
|
|
322
|
+
|
|
323
|
+
### Verification
|
|
324
|
+
|
|
325
|
+
- Added regression coverage for mixed-revision metadata, status noise filtering, and self-check output.
|
|
326
|
+
|
|
327
|
+
## [0.1.7] - 2026-07-07
|
|
328
|
+
|
|
329
|
+
### Added
|
|
330
|
+
|
|
331
|
+
- `svn_log` now resolves working-copy paths to repository URLs and queries HEAD when possible, avoiding mixed-revision root log gaps.
|
|
332
|
+
- `svn_diff` now returns EOL diagnostics and `recovery_tool: "eol_fix_verified"` when SVN reports inconsistent line endings.
|
|
333
|
+
- Added `npm run release:prepare`, a Node release packager that copies `dist/` and `bin/` into `releases/v<version>` and repoints `current` without PowerShell copy/junction commands.
|
|
334
|
+
|
|
335
|
+
### Changed
|
|
336
|
+
|
|
337
|
+
- Updated the spec and README for repository-URL log behavior, EOL diff recovery, and the release preparation command.
|
|
338
|
+
|
|
339
|
+
### Verification
|
|
340
|
+
|
|
341
|
+
- Added temp-repository regression tests for mixed-revision root log history and inconsistent-EOL diff recovery.
|
|
342
|
+
|
|
343
|
+
## [0.1.6] - 2026-07-07
|
|
344
|
+
|
|
345
|
+
### Changed
|
|
346
|
+
|
|
347
|
+
- Expanded never-commit guards to block root generated/dependency/cache artifacts: `dist/**`, `node_modules/**`, `coverage/**`, `.cache/**`, and `*.tsbuildinfo`.
|
|
348
|
+
- Tightened `/**` never-commit matching so directory globs do not block unrelated same-prefix files such as `binary.txt`.
|
|
349
|
+
- Updated the spec and SVN rules so the executable guard matrix matches the documented generated-output policy.
|
|
350
|
+
|
|
351
|
+
### Verification
|
|
352
|
+
|
|
353
|
+
- Added a guard regression test that failed before the change and passed after the guard expansion.
|
|
354
|
+
|
|
355
|
+
## [0.1.5] - 2026-07-07
|
|
356
|
+
|
|
357
|
+
### Added
|
|
358
|
+
|
|
359
|
+
- Plug-and-play global client registration: one MCP config can serve multiple SVN working copies.
|
|
360
|
+
- Working-copy inference from absolute path inputs when `cwd` is omitted.
|
|
361
|
+
- `--readonly` launch argument for read-only clients.
|
|
362
|
+
- Regression coverage for absolute-path multi-working-copy use.
|
|
363
|
+
|
|
364
|
+
### Changed
|
|
365
|
+
|
|
366
|
+
- End-user configuration no longer requires environment variables or project-specific launch `cwd`.
|
|
367
|
+
- `SVN_AGENT_*` variables are documented as development/test escape hatches only.
|
|
368
|
+
- README, spec, and ADR docs now describe zero-env setup and multi-working-copy behavior.
|
|
369
|
+
|
|
370
|
+
## [0.1.4] - 2026-07-07
|
|
371
|
+
|
|
372
|
+
### Added
|
|
373
|
+
|
|
374
|
+
- Versioned source-tree `bin/` folder containing the full SlikSVN `bin` payload and full dos2unix `bin` payload.
|
|
375
|
+
- Release `bin/` payload beside `dist/`, including `svn`, `svnadmin`, `svnversion`, `dos2unix`, `unix2dos`, and required DLLs.
|
|
376
|
+
- Bundled executable resolution for SVN and EOL tools, with dev/test overrides.
|
|
377
|
+
|
|
378
|
+
### Changed
|
|
379
|
+
|
|
380
|
+
- Runtime startup and EOL repair no longer depend on PATH for normal use.
|
|
381
|
+
- Tests use bundled SVN binaries for temp-repository setup.
|
|
382
|
+
|
|
383
|
+
## [0.1.3] - 2026-07-07
|
|
384
|
+
|
|
385
|
+
### Added
|
|
386
|
+
|
|
387
|
+
- Guarded `svn_move`, `svn_rename`, and `svn_copy` tools for working-copy paths.
|
|
388
|
+
- Parent-directory creation for move/copy destinations.
|
|
389
|
+
- Integration coverage for move, rename, copy, readonly refusal, and never-commit destination refusal.
|
|
390
|
+
|
|
391
|
+
## [0.1.2] - 2026-07-07
|
|
392
|
+
|
|
393
|
+
### Changed
|
|
394
|
+
|
|
395
|
+
- EOL repair is fully MCP-owned through `unix2dos`/`dos2unix`.
|
|
396
|
+
- `svn_diff` uses `svn diff --internal-diff -x --ignore-eol-style` by default.
|
|
397
|
+
- PowerShell EOL hook guidance was removed from the workflow.
|
|
398
|
+
|
|
399
|
+
## [0.1.1] - 2026-07-07
|
|
400
|
+
|
|
401
|
+
### Fixed
|
|
402
|
+
|
|
403
|
+
- `svn_add` now schedules needed parent directories for explicit nested file paths.
|
|
404
|
+
- `svn_commit` includes scheduled-added parent directories needed for explicit nested file commits.
|
|
405
|
+
|
|
406
|
+
## [0.1.0] - 2026-07-07
|
|
407
|
+
|
|
408
|
+
### Added
|
|
409
|
+
|
|
410
|
+
- Initial generic SVN MCP implementation.
|
|
411
|
+
- Guarded SVN runner, structured envelopes, XML/text parsers, EOL helpers, and guard logic.
|
|
412
|
+
- Read-only, composite, and mutating SVN tool families.
|
|
413
|
+
- Versioned release layout under `releases/v<version>` with a `current` junction.
|