mcp-google-api 0.26.0 → 0.26.2

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 CHANGED
@@ -1,311 +1,270 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.26.2](https://github.com/Ogekuri/mcp-google-api/compare/v0.26.0..v0.26.2) - 2026-11-10
4
+ ### 🚜 Changes
5
+ - align --ver/--version report to padded labels [useReq] *(upgradeManager)*
6
+ REQUIREMENTS: REQ-120/REQ-162/REQ-163/REQ-181 reworded to the aligned three-line report; REQ-192 added pinning 'Current Installed : <version>'.
7
+ SRC: add pure renderVersionReportLine helper (label padEnd 17) consumed by runVersionCommand; sync stale probe doc in autoUpdate.ts.
8
+ DOCS: WORKFLOW.md TRACE-L/EDGE-06/EDGE-10 runtime model updated; REFERENCES.md regenerated. Verified: static-check clean, typecheck exit 0, npm test 153/153 passed.
9
+ - add --force forced-reinstall option to --upgrade [useReq] *(upgrade)*
10
+ REQUIREMENTS: add REQ-187..REQ-191 (force option, forced channel commands,
11
+ standard unforced child, help documentation) and PKG-064 (README coverage);
12
+ extend TST-017/TST-023 verification mapping.
13
+ upgradeManager: UPGRADE_FORCE_OPTION, parseUpgradeForce, --force-aware
14
+ parseManagementCommand shapes (any option order), buildDevelopUpgradeCommand
15
+ force flag, ManagementCommandOptions.force, forced/standard update child.
16
+ cli: forward --force to runManagementCommand; help epilog documents it.; tests: force parser/builder/child-spawn coverage (153/153 pass).; README: document --upgrade --develop/--dev and --force; fix stale
17
+ skip-on-latest sentence (REQ-146).
18
+ WORKFLOW/REFERENCES: runtime model and symbol index refreshed.
19
+
3
20
  ## [0.26.0](https://github.com/Ogekuri/mcp-google-api/compare/v0.25.0..v0.26.0) - 2026-11-08
4
21
  ### 🚜 Changes
5
22
  - add opencode CLI support and alphabetical CLI listing [useReq] *(cliTargets)*
6
- - REQ-110/DES-017 updated: opencode joins the supported CLI registry; supported-name listings print alphabetically.
7
- - REQ-112/REQ-113 updated: opencode MCP config at ~/.config/opencode/opencode.json (JSON mcp map) and skills at ~/.config/opencode/skills.
8
- - REQ-117 updated: show CLI Configuration table covers all seven CLIs in alphabetical order; CLI_TARGETS registry reordered alphabetically.
9
- - JSON read-modify-write helpers gained a mapKey parameter (default mcpServers, mcp for opencode) preserving unrelated keys; CliTarget gained jsonMcpMapKey.
10
- - Unit suite 146/146 green; behavioral proof verified paths, mcp-map install/uninstall round-trip, and alphabetical show rows.
23
+ REQ-110/DES-017 updated: opencode joins the supported CLI registry; supported-name listings print alphabetically.; REQ-112/REQ-113 updated: opencode MCP config at ~/.config/opencode/opencode.json (JSON mcp map) and skills at ~/.config/opencode/skills.; REQ-117 updated: show CLI Configuration table covers all seven CLIs in alphabetical order; CLI_TARGETS registry reordered alphabetically.; JSON read-modify-write helpers gained a mapKey parameter (default mcpServers, mcp for opencode) preserving unrelated keys; CliTarget gained jsonMcpMapKey.; Unit suite 146/146 green; behavioral proof verified paths, mcp-map install/uninstall round-trip, and alphabetical show rows.
11
24
  - rebuild dist binaries on every launcher run [useReq] *(mcp-google-api.sh)*
12
- - PRJ-019 amended: the dev launcher rebuilds dist from the current sources before every execution and aborts non-zero when the rebuild fails; dependency installs stay explicit (npm ci).
13
- - PRJ-022 added: every argument is forwarded unchanged to the rebuilt dist/cli.js with exit-code propagation via exec.
14
- - PKG-019 amended: the helper-script no-implicit-install/build rule now carves out the PRJ-018 development launcher.
15
- - Build output routes to stderr so the exec'd CLI keeps stdout clean for stdio JSON-RPC framing (CTN-003).
16
- - No src/ changes; unit suite 146/146 green; live proof verified rebuild, exit propagation, and JSON-pure stdout.
25
+ PRJ-019 amended: the dev launcher rebuilds dist from the current sources before every execution and aborts non-zero when the rebuild fails; dependency installs stay explicit (npm ci).; PRJ-022 added: every argument is forwarded unchanged to the rebuilt dist/cli.js with exit-code propagation via exec.; PKG-019 amended: the helper-script no-implicit-install/build rule now carves out the PRJ-018 development launcher.; Build output routes to stderr so the exec'd CLI keeps stdout clean for stdio JSON-RPC framing (CTN-003).; No src/ changes; unit suite 146/146 green; live proof verified rebuild, exit propagation, and JSON-pure stdout.
17
26
  - render show tables as box-drawing grid [useReq] *(cliShow)*
18
- - REQ-185 added: the show CLI Configuration and Installation Status tables render as box-drawing grids using the specific border characters.
19
- - REQ-186 added: data rows emit without inter-row border lines, with exactly one header separator and a closing bottom border.
20
- - renderAsciiTable now builds borders via a parametric borderLine helper (top/header/body/bottom) and pipe-delimited rows; column sizing, cell wrapping, and alignment are unchanged.
21
- - WORKFLOW.md TRACE-K and EDGE-06 runtime model updated; REFERENCES.md regenerated; no test files modified.
27
+ REQ-185 added: the show CLI Configuration and Installation Status tables render as box-drawing grids using the specific border characters.; REQ-186 added: data rows emit without inter-row border lines, with exactly one header separator and a closing bottom border.; renderAsciiTable now builds borders via a parametric borderLine helper (top/header/body/bottom) and pipe-delimited rows; column sizing, cell wrapping, and alignment are unchanged.; WORKFLOW.md TRACE-K and EDGE-06 runtime model updated; REFERENCES.md regenerated; no test files modified.
22
28
  - print enable/disable result as human-readable confirmation [useReq] *(cli)*
23
- - PRJ-008 updated: enable and disable join the human-readable stdout operation-report exceptions.
24
- - REQ-184 added: enable/disable print a human-readable confirmation naming the resolved CLI and the resulting enabled state, exit 0.
25
- - runEnableDisableCliCommand now writes plain-text confirmations on both success branches (state change and idempotent no-op); the unsupported-name JSON stderr diagnostic and exit 2 are unchanged (REQ-110).
26
- - WORKFLOW.md TRACE-K and EDGE-06 runtime model updated; REFERENCES.md regenerated; no test files modified.
29
+ PRJ-008 updated: enable and disable join the human-readable stdout operation-report exceptions.; REQ-184 added: enable/disable print a human-readable confirmation naming the resolved CLI and the resulting enabled state, exit 0.; runEnableDisableCliCommand now writes plain-text confirmations on both success branches (state change and idempotent no-op); the unsupported-name JSON stderr diagnostic and exit 2 are unchanged (REQ-110).; WORKFLOW.md TRACE-K and EDGE-06 runtime model updated; REFERENCES.md regenerated; no test files modified.
27
30
  - render GitHub probe failure reason in version report [useReq] *(upgradeManager)*
28
- - REQ-181 added: --ver/--version now prints 'GitHub latest: unknown (<reason>)' when the GitHub releases probe fails, <reason> carrying the probe diagnostic message.
29
- - REQ-164 updated to reference the REQ-181 failed-probe diagnostic rendering.
30
- - probeLatestGitHubVersion embeds the GitHub API error message body field (e.g. HTTP 404 rate limit) via the new tolerant readGitHubErrorDetail helper.
31
- - WORKFLOW.md TRACE-L and EDGE-06/EDGE-10 runtime model updated; REFERENCES.md regenerated; no test files modified.
31
+ REQ-181 added: --ver/--version now prints 'GitHub latest: unknown (<reason>)' when the GitHub releases probe fails, <reason> carrying the probe diagnostic message.; REQ-164 updated to reference the REQ-181 failed-probe diagnostic rendering.; probeLatestGitHubVersion embeds the GitHub API error message body field (e.g. HTTP 404 rate limit) via the new tolerant readGitHubErrorDetail helper.; WORKFLOW.md TRACE-L and EDGE-06/EDGE-10 runtime model updated; REFERENCES.md regenerated; no test files modified.
32
32
 
33
33
  ## [0.25.0](https://github.com/Ogekuri/mcp-google-api/compare/v0.24.0..v0.25.0) - 2026-11-08
34
34
  ### 🐛 Bug Fixes
35
35
  - make doctor spawn tests hermetic with isolated home [useReq] *(cliSpawn)*
36
- - Root cause of the CI-only failure: the doctor spawn test inherited the
37
- - host HOME, so it read the developer machine's real
38
- - ~/.config/mcp-google-api/config.json; locally the real API key made the
39
- - REQ-070 api-key check pass (exit 0), while the clean CI runner had no
40
- - settings file, so doctor correctly exited 1 and the gate failed.
41
- - spawnCli now accepts an injectable HOME override; the doctor success
42
- - test provisions an isolated home with the DES-018 settings fixture and
43
- - a valid-format test key, so local runs reproduce the CI runner state
44
- - exactly and the discrepancy can no longer hide before publication.
45
- - Add a REQ-070 regression pin: doctor exits 1 on a clean isolated home
46
- - without a configured API key (the exact CI failure state).
47
- - Evidence: clean-HOME reproduction exited 1 with api-key fail before the
48
- - fix; after the fix the suite passes 4/4 both with the real and a clean
49
- - HOME; full suite 146/146; local pre-release gate green (exit 0).
50
- - No source changes: doctor clean-env exit-1 behavior is REQ-070-correct.
36
+ Root cause of the CI-only failure: the doctor spawn test inherited the
37
+ host HOME, so it read the developer machine's real
38
+ ~/.config/mcp-google-api/config.json; locally the real API key made the
39
+ REQ-070 api-key check pass (exit 0), while the clean CI runner had no
40
+ settings file, so doctor correctly exited 1 and the gate failed.
41
+ spawnCli now accepts an injectable HOME override; the doctor success
42
+ test provisions an isolated home with the DES-018 settings fixture and
43
+ a valid-format test key, so local runs reproduce the CI runner state
44
+ exactly and the discrepancy can no longer hide before publication.
45
+ Add a REQ-070 regression pin: doctor exits 1 on a clean isolated home
46
+ without a configured API key (the exact CI failure state).
47
+ Evidence: clean-HOME reproduction exited 1 with api-key fail before the
48
+ fix; after the fix the suite passes 4/4 both with the real and a clean
49
+ HOME; full suite 146/146; local pre-release gate green (exit 0).
50
+ No source changes: doctor clean-env exit-1 behavior is REQ-070-correct.
51
51
 
52
52
  ## [0.24.0](https://github.com/Ogekuri/mcp-google-api/compare/v0.23.0..v0.24.0) - 2026-11-08
53
53
  ### ⛰️ Features
54
54
  - add pre-release-check.sh release gate [useReq] *(scripts)*
55
- - Ship scripts/pre-release-check.sh running the release-gating stages
56
- - in mandatory order: publish-version guard, typecheck, unit tests,
57
- - production build, aborting at the first failed stage (PKG-058/059).
58
- - The script exits 0 only when every stage passes, runs from any cwd
59
- - by resolving the repository root, and never installs dependencies
60
- - or publishes (PKG-060).
61
- - Add tests/preReleaseCheck.unit.test.ts (TST-024): static contract on
62
- - stage order, fail-fast wiring, repository-root cd, and no install/
63
- - publish commands, plus a sandbox run proving fail-fast exit 1 on an
64
- - injected failing stage.
65
- - Runtime verification: full run green (guard 0.23.0 publishable,
66
- - typecheck clean, 143/143 unit tests, build success, exit 0); real
67
- - fail-fast observed on a missing-toolchain run (typecheck FAILED ->
68
- - exit 1, later stages skipped).
55
+ Ship scripts/pre-release-check.sh running the release-gating stages
56
+ in mandatory order: publish-version guard, typecheck, unit tests,
57
+ production build, aborting at the first failed stage (PKG-058/059).
58
+ The script exits 0 only when every stage passes, runs from any cwd
59
+ by resolving the repository root, and never installs dependencies
60
+ or publishes (PKG-060).
61
+ Add tests/preReleaseCheck.unit.test.ts (TST-024): static contract on
62
+ stage order, fail-fast wiring, repository-root cd, and no install/
63
+ publish commands, plus a sandbox run proving fail-fast exit 1 on an
64
+ injected failing stage.
65
+ Runtime verification: full run green (guard 0.23.0 publishable,
66
+ typecheck clean, 143/143 unit tests, build success, exit 0); real
67
+ fail-fast observed on a missing-toolchain run (typecheck FAILED ->
68
+ exit 1, later stages skipped).
69
69
 
70
70
  ### 🐛 Bug Fixes
71
71
  - sync package-lock bin path with package.json launcher [useReq] *(packaging)*
72
- - The committed package-lock.json root bin entry still recorded the
73
- - superseded dist/cli.js launcher, so every standard bootstrap
74
- - (npm install) rewrote the tracked lockfile and left a fresh clone dirty.
75
- - Regenerate the lockfile bin entry to bin/mcp-google-api.mjs, matching
76
- - the package.json launcher contract (PRJ-020).
77
- - Add a level-0 regression guard test asserting lockfile/package.json
78
- - bin-map identity to tests/npmPublishContract.unit.test.ts, closing
79
- - the TST-021 coverage gap that let the drift go undetected.
80
- - Evidence: reproducer red on the stale lockfile, green after the fix;
81
- - full suite 138/138 pass, typecheck clean, static analysis clean.
72
+ The committed package-lock.json root bin entry still recorded the
73
+ superseded dist/cli.js launcher, so every standard bootstrap
74
+ (npm install) rewrote the tracked lockfile and left a fresh clone dirty.
75
+ Regenerate the lockfile bin entry to bin/mcp-google-api.mjs, matching
76
+ the package.json launcher contract (PRJ-020).
77
+ Add a level-0 regression guard test asserting lockfile/package.json
78
+ bin-map identity to tests/npmPublishContract.unit.test.ts, closing
79
+ the TST-021 coverage gap that let the drift go undetected.
80
+ Evidence: reproducer red on the stale lockfile, green after the fix;
81
+ full suite 138/138 pass, typecheck clean, static analysis clean.
82
82
 
83
83
  ### 🚜 Changes
84
84
  - gate pipeline on pre-release test checks [useReq] *(release)*
85
- - Add a Pre-release check step to .github/workflows/release-npm.yml
86
- - running scripts/pre-release-check.sh after npm ci and before every
87
- - build, pack, publish, and release-creation step, so versions whose
88
- - tests fail produce no release artifact and are never published
89
- - (PKG-063).
90
- - The gate executes the PKG-058 stages (publish-version guard,
91
- - typecheck, unit tests, build) in fail-fast order (PKG-059) and never
92
- - installs dependencies or publishes (PKG-060).
93
- - Update the workflow header and pack-step comments; the release
94
- - pipeline defines no direct test commands - all test stages live in
95
- - the gate script.
96
- - SRS: add PKG-063 and extend TST-020 with the gate contract.
97
- - Tests: ciContract asserts gate presence, placement, and absence of
98
- - direct test commands; suite 6/6, full suite 145/145.
85
+ Add a Pre-release check step to .github/workflows/release-npm.yml
86
+ running scripts/pre-release-check.sh after npm ci and before every
87
+ build, pack, publish, and release-creation step, so versions whose
88
+ tests fail produce no release artifact and are never published
89
+ (PKG-063).
90
+ The gate executes the PKG-058 stages (publish-version guard,
91
+ typecheck, unit tests, build) in fail-fast order (PKG-059) and never
92
+ installs dependencies or publishes (PKG-060).
93
+ Update the workflow header and pack-step comments; the release
94
+ pipeline defines no direct test commands - all test stages live in
95
+ the gate script.
96
+ SRS: add PKG-063 and extend TST-020 with the gate contract.; Tests: ciContract asserts gate presence, placement, and absence of
97
+ direct test commands; suite 6/6, full suite 145/145.
99
98
  - clean run-created artifacts in pre-release-check [useReq] *(scripts)*
100
- - scripts/pre-release-check.sh now snapshots the repository state before
101
- - the stages and removes on exit every artifact directory the run created
102
- - (e.g. the tsup dist/ tree), on both success and fail-fast paths, so the
103
- - repository is left as found (PKG-061).
104
- - Pre-existing artifact directories are preserved untouched (PKG-062).
105
- - SRS: add PKG-061/PKG-062 and extend TST-024 with the cleanup contract.
106
- - Tests: shared sandbox helper plus two behavioral proofs - run-created
107
- - dist removed on the fail-fast path, pre-existing dist sentinel intact.
108
- - Verification: suite 7/7; full run 145/145 tests with dist removed after
109
- - the run; pre-existing dist preserved in a second scenario; static
110
- - analysis clean; git status clean after every run.
99
+ scripts/pre-release-check.sh now snapshots the repository state before
100
+ the stages and removes on exit every artifact directory the run created
101
+ (e.g. the tsup dist/ tree), on both success and fail-fast paths, so the
102
+ repository is left as found (PKG-061).
103
+ Pre-existing artifact directories are preserved untouched (PKG-062).; SRS: add PKG-061/PKG-062 and extend TST-024 with the cleanup contract.; Tests: shared sandbox helper plus two behavioral proofs - run-created
104
+ dist removed on the fail-fast path, pre-existing dist sentinel intact.
105
+ Verification: suite 7/7; full run 145/145 tests with dist removed after
106
+ the run; pre-existing dist preserved in a second scenario; static
107
+ analysis clean; git status clean after every run.
111
108
 
112
109
  ## [0.23.0](https://github.com/Ogekuri/mcp-google-api/compare/v0.22.0..v0.23.0) - 2026-11-07
113
110
  ### ⛰️ Features
114
111
  - add copilot CLI agent support (DES-017, REQ-110/112/113/117) [useReq] *(cli-targets)*
115
- - Requirements: extend DES-017, REQ-110, REQ-112, REQ-113, REQ-117 with the copilot target
116
- - Source: add COPILOT_TARGET adapter (~/.copilot/mcp.json JSON mcpServers + ~/.copilot/skills) to CLI_TARGETS registry in src/utils/cliTargets.ts
117
- - Docs: README supported-agents list/table and WORKFLOW/REFERENCES runtime model updated
118
- - Verification: eslint/tsc clean, npm test 132/132 pass, enable/show/install runtime smoke on isolated HOME
112
+ Requirements: extend DES-017, REQ-110, REQ-112, REQ-113, REQ-117 with the copilot target; Source: add COPILOT_TARGET adapter (~/.copilot/mcp.json JSON mcpServers + ~/.copilot/skills) to CLI_TARGETS registry in src/utils/cliTargets.ts; Docs: README supported-agents list/table and WORKFLOW/REFERENCES runtime model updated; Verification: eslint/tsc clean, npm test 132/132 pass, enable/show/install runtime smoke on isolated HOME
119
113
 
120
114
  ### 🐛 Bug Fixes
121
115
  - build dist via prepare lifecycle for GitHub installs [useReq] *(packaging)*
122
- - Develop-channel installs (npm install -g github:Ogekuri/mcp-google-api#<tag>,
123
- - REQ-171) packed the fetched git tree without dist/: no build lifecycle ran, so
124
- - every installed package hit the PRJ-021 remediation error and the post-upgrade
125
- - install child failed (evidence: v0.22.4 pack listing had 0 dist entries).
126
- - package.json: declare scripts.prepare = npm run build so npm git-dep
127
- - preparation builds dist/ into the packed tarball (PRJ-020; verified by
128
- - local git-sim packs: 8 dist entries incl. dist/cli.js).
129
- - tests/npmPublishContract.unit.test.ts: add failing-first reproducer test
130
- - pinning the prepare lifecycle contract (no chained installs, PKG-019) and
131
- - restore deterministic pack listing via --ignore-scripts.
132
- - usereq/docs/WORKFLOW.md: document the prepare build inside EDGE-09.
116
+ Develop-channel installs (npm install -g github:Ogekuri/mcp-google-api#<tag>,
117
+ REQ-171) packed the fetched git tree without dist/: no build lifecycle ran, so
118
+ every installed package hit the PRJ-021 remediation error and the post-upgrade
119
+ install child failed (evidence: v0.22.4 pack listing had 0 dist entries).
120
+ package.json: declare scripts.prepare = npm run build so npm git-dep
121
+ preparation builds dist/ into the packed tarball (PRJ-020; verified by
122
+ local git-sim packs: 8 dist entries incl. dist/cli.js).
123
+ tests/npmPublishContract.unit.test.ts: add failing-first reproducer test
124
+ pinning the prepare lifecycle contract (no chained installs, PKG-019) and
125
+ restore deterministic pack listing via --ignore-scripts.
126
+ usereq/docs/WORKFLOW.md: document the prepare build inside EDGE-09.
133
127
  - spawn package-manager child with neutral home cwd [useReq] *(upgrade)*
134
- - Defect: --upgrade (npm and --dev|--develop channels) and --uninstall
135
- - spawned npm from the caller's working directory. When invoked from the
136
- - source checkout of the same package (scripts/mcp-google-api.sh cd's to
137
- - the repo root), npm reconciled the git-ref global install against that
138
- - same-name local project and corrupted reify: TAR_ENTRY_ERROR ENOENT
139
- - floods on hono/@modelcontextprotocol/sdk/@grpc/grpc-js plus a fatal
140
- - lifecycle 'spawn sh ENOENT' (protobufjs) against a cwd deleted
141
- - mid-reify.
142
- - Fix: runPackageManagerCommand spawns the child with cwd = os.homedir()
143
- - (explicit neutral directory, env/prefix unchanged); stdio inheritance,
144
- - exit propagation, and the REQ-128 manual-command hint are unchanged.
145
- - Reproducer test (HDT Level 1) added to tests/upgradeManager.unit.test.ts:
146
- - asserts the child cwd is the user home and never the caller cwd; suite
147
- - went 11 pass / 1 fail before the fix to 136/136 after.
128
+ Defect: --upgrade (npm and --dev|--develop channels) and --uninstall
129
+ spawned npm from the caller's working directory. When invoked from the
130
+ source checkout of the same package (scripts/mcp-google-api.sh cd's to
131
+ the repo root), npm reconciled the git-ref global install against that
132
+ same-name local project and corrupted reify: TAR_ENTRY_ERROR ENOENT
133
+ floods on hono/@modelcontextprotocol/sdk/@grpc/grpc-js plus a fatal
134
+ lifecycle 'spawn sh ENOENT' (protobufjs) against a cwd deleted
135
+ mid-reify.
136
+ Fix: runPackageManagerCommand spawns the child with cwd = os.homedir()
137
+ (explicit neutral directory, env/prefix unchanged); stdio inheritance,
138
+ exit propagation, and the REQ-128 manual-command hint are unchanged.
139
+ Reproducer test (HDT Level 1) added to tests/upgradeManager.unit.test.ts:
140
+ asserts the child cwd is the user home and never the caller cwd; suite
141
+ went 11 pass / 1 fail before the fix to 136/136 after.
148
142
  - report skipped server-start dispatch with build remediation [useReq] *(cli)*
149
- - Root cause of the persistent pi 'MCP connection closed' after the 0.21.0 rename:
150
- - the REQ-114 launcher 'npx -y mcp-google-api start --stdio' resolves a same-name
151
- - local project in the spawn cwd, launching a stale pre-rename dist artifact that
152
- - skips dispatch and exits 0 silently (reproduced: exit 0, zero stdout bytes).
153
- - Add describeUndispatchedServerStart() and handleUndispatchedEntry() to the CLI
154
- - entry gate: server-start-shaped argv that matches no gate rule now emits a JSON
155
- - build-remediation diagnostic on stderr (REQ-094) and exits 1; stdout stays
156
- - JSON-RPC-clean (CTN-003); non-server-start argv keeps the silent exit-0 no-op.
157
- - Extend tests/cliEntryGate.unit.test.ts with failing-first reproducers (3 tests);
158
- - full suite 132/132 green; typecheck, static checks, and build clean.
159
- - Document the stale-artifact remediation in docs/CONFIGURATION.md; update
160
- - WORKFLOW.md TRACE-A/EDGE-06 and regenerate REFERENCES.md.
143
+ Root cause of the persistent pi 'MCP connection closed' after the 0.21.0 rename:
144
+ the REQ-114 launcher 'npx -y mcp-google-api start --stdio' resolves a same-name
145
+ local project in the spawn cwd, launching a stale pre-rename dist artifact that
146
+ skips dispatch and exits 0 silently (reproduced: exit 0, zero stdout bytes).
147
+ Add describeUndispatchedServerStart() and handleUndispatchedEntry() to the CLI
148
+ entry gate: server-start-shaped argv that matches no gate rule now emits a JSON
149
+ build-remediation diagnostic on stderr (REQ-094) and exits 1; stdout stays
150
+ JSON-RPC-clean (CTN-003); non-server-start argv keeps the silent exit-0 no-op.
151
+ Extend tests/cliEntryGate.unit.test.ts with failing-first reproducers (3 tests);
152
+ full suite 132/132 green; typecheck, static checks, and build clean.
153
+ Document the stale-artifact remediation in docs/CONFIGURATION.md; update
154
+ WORKFLOW.md TRACE-A/EDGE-06 and regenerate REFERENCES.md.
161
155
 
162
156
  ### 🚜 Changes
163
157
  - make --upgrade update unconditionally [useReq] *(upgradeManager)*
164
- - --upgrade now reinstalls mcp-google-api@latest in every invocation,
165
- - without any pre-upgrade version comparison (REQ-146 rewrite).
166
- - Removed the pre-upgrade registry necessity check and the
167
- - already-latest skip path (REQ-144, REQ-145, REQ-147 deleted) and the
168
- - pre-upgrade-latest summary shortcut (REQ-181 deleted); REQ-172
169
- - reworded since the comparison no longer exists.
170
- - The summary updated version now comes from the post-upgrade probe
171
- - (REQ-134); unused isUpgradeNecessary removed.
172
- - Requirements, workflow model, and references updated; typecheck and
173
- - 136 unit tests pass.
158
+ --upgrade now reinstalls mcp-google-api@latest in every invocation,
159
+ without any pre-upgrade version comparison (REQ-146 rewrite).
160
+ Removed the pre-upgrade registry necessity check and the
161
+ already-latest skip path (REQ-144, REQ-145, REQ-147 deleted) and the
162
+ pre-upgrade-latest summary shortcut (REQ-181 deleted); REQ-172
163
+ reworded since the comparison no longer exists.
164
+ The summary updated version now comes from the post-upgrade probe
165
+ (REQ-134); unused isUpgradeNecessary removed.
166
+ Requirements, workflow model, and references updated; typecheck and
167
+ 136 unit tests pass.
174
168
  - self-heal npm reify ENOENT in --upgrade [useReq] *(upgradeManager)*
175
- - --upgrade update children (npm and --develop/--dev channels) run with
176
- - captured output echoed on stderr (REQ-125, REQ-171).
177
- - A non-zero exit carrying an ENOENT reify diagnostic triggers one
178
- - tolerated npm uninstall -g clean-slate child plus a single retry,
179
- - repairing corrupted global trees whose dependency lifecycle spawns
180
- - fail like the reported 'spawn sh ENOENT' (REQ-182, REQ-183).
181
- - Requirements, workflow model, and references updated; typecheck and
182
- - 136 unit tests pass.
169
+ --upgrade update children (npm and --develop/--dev channels) run with
170
+ captured output echoed on stderr (REQ-125, REQ-171).
171
+ A non-zero exit carrying an ENOENT reify diagnostic triggers one
172
+ tolerated npm uninstall -g clean-slate child plus a single retry,
173
+ repairing corrupted global trees whose dependency lifecycle spawns
174
+ fail like the reported 'spawn sh ENOENT' (REQ-182, REQ-183).
175
+ Requirements, workflow model, and references updated; typecheck and
176
+ 136 unit tests pass.
183
177
  - resolve npmjs latest via packument manifest [useReq] *(upgradeManager)*
184
- - --ver/--version now probe the npm packument manifest with the
185
- - abbreviated Accept header and print dist-tags.latest (REQ-179, REQ-180).
186
- - --upgrade reports the pre-upgrade npmjs latest as the summary updated
187
- - version and skips the post-upgrade probe when resolved (REQ-181).
188
- - REQUIREMENTS/WORKFLOW/REFERENCES updated; typecheck and 136 unit
189
- - tests pass.
178
+ --ver/--version now probe the npm packument manifest with the
179
+ abbreviated Accept header and print dist-tags.latest (REQ-179, REQ-180).
180
+ --upgrade reports the pre-upgrade npmjs latest as the summary updated
181
+ version and skips the post-upgrade probe when resolved (REQ-181).
182
+ REQUIREMENTS/WORKFLOW/REFERENCES updated; typecheck and 136 unit
183
+ tests pass.
190
184
  - ship mcp-google-api launcher bin with remediation [useReq] *(bin)*
191
- - PRJ-020: the installed mcp-google-api bin executes the packaged
192
- - dist/cli.js Node entry forwarding every argument unchanged with no
193
- - implicit install/build steps (analogous to scripts/mcp-google-api.sh).
194
- - PRJ-021: new launcher bin/mcp-google-api.mjs (realpath-safe package-root
195
- - resolution) prints JSON build-remediation guidance on stderr and exits
196
- - non-zero when dist/cli.js is missing - impossible to deliver from the
197
- - built artifact itself.
198
- - package.json: bin repointed to bin/mcp-google-api.mjs; files allowlist
199
- - ships bin/ (verified in npm pack --dry-run); .gitignore gains !bin/
200
- - exceptions (CTN-010).
201
- - PKG-038 publication fixture updated for the bin/ prefix; verified live:
202
- - launcher forwards (--help, exit 0) and remediates (exit 1, JSON stderr);
203
- - 136/136 tests, typecheck and eslint clean.
185
+ PRJ-020: the installed mcp-google-api bin executes the packaged
186
+ dist/cli.js Node entry forwarding every argument unchanged with no
187
+ implicit install/build steps (analogous to scripts/mcp-google-api.sh).
188
+ PRJ-021: new launcher bin/mcp-google-api.mjs (realpath-safe package-root
189
+ resolution) prints JSON build-remediation guidance on stderr and exits
190
+ non-zero when dist/cli.js is missing - impossible to deliver from the
191
+ built artifact itself.
192
+ package.json: bin repointed to bin/mcp-google-api.mjs; files allowlist
193
+ ships bin/ (verified in npm pack --dry-run); .gitignore gains !bin/
194
+ exceptions (CTN-010).
195
+ PKG-038 publication fixture updated for the bin/ prefix; verified live:
196
+ launcher forwards (--help, exit 0) and remediates (exit 1, JSON stderr);
197
+ 136/136 tests, typecheck and eslint clean.
204
198
  - add develop-channel coverage for --upgrade --dev|--develop [useReq] *(test)*
205
- - TST-023: new test requirement mapping REQ-170/171/172/173/177/178 to
206
- - tests/upgradeManager.unit.test.ts.
207
- - HDT Level 0: buildDevelopUpgradeCommand builds the raw tag install
208
- - command npm install -g github:Ogekuri/mcp-google-api#<tag>.
209
- - HDT Level 1: the develop channel probes only the GitHub releases
210
- - endpoint bypassing the idle cache (REQ-177), spawns the tagged install
211
- - with the raw tag_name (REQ-171), always proceeds even when the probed
212
- - tag equals the installed version (REQ-172), reports the probed version
213
- - in the summary (REQ-173), and fails fast on probe error without
214
- - spawning any child process (REQ-178).
215
- - No src/ changes: verification confirmed the implementation already
216
- - satisfied the request; 135/135 tests, typecheck and eslint clean.
199
+ TST-023: new test requirement mapping REQ-170/171/172/173/177/178 to
200
+ tests/upgradeManager.unit.test.ts.
201
+ HDT Level 0: buildDevelopUpgradeCommand builds the raw tag install
202
+ command npm install -g github:Ogekuri/mcp-google-api#<tag>.
203
+ HDT Level 1: the develop channel probes only the GitHub releases
204
+ endpoint bypassing the idle cache (REQ-177), spawns the tagged install
205
+ with the raw tag_name (REQ-171), always proceeds even when the probed
206
+ tag equals the installed version (REQ-172), reports the probed version
207
+ in the summary (REQ-173), and fails fast on probe error without
208
+ spawning any child process (REQ-178).
209
+ No src/ changes: verification confirmed the implementation already
210
+ satisfied the request; 135/135 tests, typecheck and eslint clean.
217
211
  - move publish guard to tools/ with gitignore exception [useReq] *(tools)*
218
- - Move scripts/check-publish-version.mjs to tools/ (PKG-057 updated):
219
- - the ../package.json resolution keeps working at the same directory
220
- - depth; guard verified executable from the new path (exit 0).
221
- - Wire package.json check:publish-version to the new path; the
222
- - prepublishOnly chain (PKG-005, PKG-017) is unchanged.
223
- - .gitignore: append !tools/ and !tools/**/* at the tail of the
224
- - negated-inclusion included-paths section (CTN-009); git check-ignore
225
- - confirms the guard is version-controlled.
226
- - requirements: scripts/ tree entry reduced to the mcp-google-api.sh
227
- - launcher; tools/ entry added for the publish guard.
212
+ Move scripts/check-publish-version.mjs to tools/ (PKG-057 updated):
213
+ the ../package.json resolution keeps working at the same directory
214
+ depth; guard verified executable from the new path (exit 0).
215
+ Wire package.json check:publish-version to the new path; the
216
+ prepublishOnly chain (PKG-005, PKG-017) is unchanged.
217
+ .gitignore: append !tools/ and !tools/**/* at the tail of the
218
+ negated-inclusion included-paths section (CTN-009); git check-ignore
219
+ confirms the guard is version-controlled.
220
+ requirements: scripts/ tree entry reduced to the mcp-google-api.sh
221
+ launcher; tools/ entry added for the publish guard.
228
222
  - BREAKING CHANGE: remove redundant shell helpers, document HTTP vs stdio [useReq] *(scripts)*
229
- - Delete scripts/build.sh, start-http.sh, start-mcp.sh, test.sh: thin
230
- - wrappers over npm run build/start/test/test:e2e; PKG-019 keeps the
231
- - single npm run verify pipeline and REQ-094 forbids implicit builds.
232
- - scripts/ now holds only mcp-google-api.sh (PRJ-018, PRJ-019) and the
233
- - retained check-publish-version.mjs publish guard: required prepublishOnly
234
- - stage, not an end-user accessory (PKG-057, PKG-005, PKG-017).
235
- - README: new 'stdio vs Streamable HTTP' comparison section (PKG-054,
236
- - PKG-055, PKG-056).
237
- - Remove the obsolete start-mcp.sh remediation test whose subject was
238
- - deleted; no src/ changes, WORKFLOW.md unaffected.
223
+ Delete scripts/build.sh, start-http.sh, start-mcp.sh, test.sh: thin
224
+ wrappers over npm run build/start/test/test:e2e; PKG-019 keeps the
225
+ single npm run verify pipeline and REQ-094 forbids implicit builds.
226
+ scripts/ now holds only mcp-google-api.sh (PRJ-018, PRJ-019) and the
227
+ retained check-publish-version.mjs publish guard: required prepublishOnly
228
+ stage, not an end-user accessory (PKG-057, PKG-005, PKG-017).
229
+ README: new 'stdio vs Streamable HTTP' comparison section (PKG-054,
230
+ PKG-055, PKG-056).
231
+ Remove the obsolete start-mcp.sh remediation test whose subject was
232
+ deleted; no src/ changes, WORKFLOW.md unaffected.
239
233
  - --dev|--develop installs the latest tagged GitHub release [useReq] *(upgrade)*
240
- - REQ-170..173: --upgrade --develop|--dev now selects the latest tagged
241
- - GitHub release regardless of the branch carrying the tag; REQ-177 adds
242
- - the forced releases-API probe bypassing the idle cache gate; REQ-178
243
- - fails fast with a stderr diagnostic and no child spawn on probe failure.
244
- - upgradeManager: GITHUB_UPGRADE_REPOSITORY + buildDevelopUpgradeCommand(tag)
245
- - replace PACKAGE_DEVELOP_UPGRADE_COMMAND; develop branch probes GitHub first,
246
- - installs github:Ogekuri/mcp-google-api#<tag>, and reports the probed version.
247
- - autoUpdate: GitHubLatestVersionProbe ok outcome now carries the raw tag_name.
248
- - cli: help text and dispatch comments document the new channel semantics.
234
+ REQ-170..173: --upgrade --develop|--dev now selects the latest tagged
235
+ GitHub release regardless of the branch carrying the tag; REQ-177 adds
236
+ the forced releases-API probe bypassing the idle cache gate; REQ-178
237
+ fails fast with a stderr diagnostic and no child spawn on probe failure.
238
+ upgradeManager: GITHUB_UPGRADE_REPOSITORY + buildDevelopUpgradeCommand(tag)
239
+ replace PACKAGE_DEVELOP_UPGRADE_COMMAND; develop branch probes GitHub first,
240
+ installs github:Ogekuri/mcp-google-api#<tag>, and reports the probed version.
241
+ autoUpdate: GitHubLatestVersionProbe ok outcome now carries the raw tag_name.; cli: help text and dispatch comments document the new channel semantics.
249
242
  - BREAKING CHANGE: remove legacy exec aliases, placeholder key, entry-gate fallback [useReq] *(cli)*
250
- - BREAKING: exec accepts only canonical maps_ tool names (REQ-073); short/snake_case/batch-geocode-tool aliases removed from EXEC_TOOLS, execTool switch, help examples, and README.
251
- - BREAKING: legacy INSTALL_API_KEY_PLACEHOLDER config value no longer loads as unset (DES-023, REQ-142); empty values still do.
252
- - BREAKING: superseded isRunDirectly basename entry-gate removed; isEntryMainModule() alone decides dispatch.
253
- - DOCTOR_PROBES use canonical tool names; tests canonicalized per user-requested legacy removal.
254
- - Verified: typecheck, static-check clean, npm test 132/132; exec geocode now rejected as unknown tool.
243
+ BREAKING: exec accepts only canonical maps_ tool names (REQ-073); short/snake_case/batch-geocode-tool aliases removed from EXEC_TOOLS, execTool switch, help examples, and README.; BREAKING: legacy INSTALL_API_KEY_PLACEHOLDER config value no longer loads as unset (DES-023, REQ-142); empty values still do.; BREAKING: superseded isRunDirectly basename entry-gate removed; isEntryMainModule() alone decides dispatch.; DOCTOR_PROBES use canonical tool names; tests canonicalized per user-requested legacy removal.; Verified: typecheck, static-check clean, npm test 132/132; exec geocode now rejected as unknown tool.
255
244
  - make --help user-facing and document --develop/--dev [useReq] *(cli)*
256
- - REQ-174: help descriptions limited to user-facing usage; removed internal details (persisted configuration, settings file, dispatch order, dist/cli.js path).
257
- - REQ-175: --upgrade epilog documents the --develop | --dev GitHub develop-branch option.
258
- - REQ-176: --ver described accurately as installed, npmjs-latest, and GitHub-latest versions.
259
- - Verified facts kept: exec alias list (batch-geocode-tool) and search-nearby example params match the schema.
260
- - Verified: static-check clean, npm test 132/132 (help contract REQ-129/130/131 intact).
245
+ REQ-174: help descriptions limited to user-facing usage; removed internal details (persisted configuration, settings file, dispatch order, dist/cli.js path).; REQ-175: --upgrade epilog documents the --develop | --dev GitHub develop-branch option.; REQ-176: --ver described accurately as installed, npmjs-latest, and GitHub-latest versions.; Verified facts kept: exec alias list (batch-geocode-tool) and search-nearby example params match the schema.; Verified: static-check clean, npm test 132/132 (help contract REQ-129/130/131 intact).
261
246
  - add --develop/--dev GitHub develop-branch upgrade channel [useReq] *(upgrade-manager)*
262
- - REQ-170..173: --upgrade accepts --develop with equivalent --dev alias selecting the GitHub develop branch.
263
- - REQ-125/REQ-144 scoped to the default npm channel; develop channel skips the registry gate and already-latest path.
264
- - upgradeManager: UpgradeChannel, PACKAGE_DEVELOP_UPGRADE_COMMAND (npm install -g github:Ogekuri/mcp-google-api#develop), parseUpgradeChannel; parseManagementCommand accepts the --upgrade + --develop/--dev pair.
265
- - Develop-channel summary reports unknown as the updated version; default npm path unchanged.
266
- - WORKFLOW.md TRACE-A/L and EDGE-07/09 updated; REFERENCES.md regenerated.
267
- - Verified: typecheck, static-check clean, npm test 132/132.
247
+ REQ-170..173: --upgrade accepts --develop with equivalent --dev alias selecting the GitHub develop branch.; REQ-125/REQ-144 scoped to the default npm channel; develop channel skips the registry gate and already-latest path.; upgradeManager: UpgradeChannel, PACKAGE_DEVELOP_UPGRADE_COMMAND (npm install -g github:Ogekuri/mcp-google-api#develop), parseUpgradeChannel; parseManagementCommand accepts the --upgrade + --develop/--dev pair.; Develop-channel summary reports unknown as the updated version; default npm path unchanged.; WORKFLOW.md TRACE-A/L and EDGE-07/09 updated; REFERENCES.md regenerated.; Verified: typecheck, static-check clean, npm test 132/132.
268
248
  - encode README header block structure and centered quick index [useReq] *(readme)*
269
- - Add requirements PKG-046..PKG-053: [!CAUTION] pre-header, exact title format, centered badge/description/quick-index/status blocks, fixed H1 section order, quick-start step order.
270
- - Rebuild README header: centered description block (strong summary + br + detail), HTML quick-index anchors now including Requirements, single status+notice centered block.
271
- - No source-code change; WORKFLOW.md runtime model unaffected; REFERENCES.md regenerated unchanged.
272
- - Verified: static-check clean; npm test 132/132 pass.
249
+ Add requirements PKG-046..PKG-053: [!CAUTION] pre-header, exact title format, centered badge/description/quick-index/status blocks, fixed H1 section order, quick-start step order.; Rebuild README header: centered description block (strong summary + br + detail), HTML quick-index anchors now including Requirements, single status+notice centered block.; No source-code change; WORKFLOW.md runtime model unaffected; REFERENCES.md regenerated unchanged.; Verified: static-check clean; npm test 132/132 pass.
273
250
 
274
251
  ## [0.22.0](https://github.com/Ogekuri/mcp-google-api/compare/v0.21.0..v0.22.0) - 2026-11-06
275
252
  ### 🐛 Bug Fixes
276
253
  - symlink-aware main-module gate restores CLI dispatch [useReq] *(cli)*
277
- - The entry gate compared import.meta.url with a string-concatenated file:// argv[1], false for every symlinked launcher (npm global bin links, _npx .bin shims), so a stale pre-rename dist silently exited 0 with no output after the 0.21.0 bin rename; pi reported 'MCP connection closed'.
278
- - Add isEntryMainModule(): symmetric realpathSync comparison of argv[1] and the module URL; name-independent dispatch for symlink launches, false on plain imports.
279
- - Add tests/cliEntryGate.unit.test.ts reproducer (symlink dispatch + direct control); update WORKFLOW.md TRACE-A; regenerate REFERENCES.md.
280
- - Verification: reproducer fails pre-fix and passes post-fix; npm run verify green (typecheck, 135/135 tests, build); eslint clean.
254
+ The entry gate compared import.meta.url with a string-concatenated file:// argv[1], false for every symlinked launcher (npm global bin links, _npx .bin shims), so a stale pre-rename dist silently exited 0 with no output after the 0.21.0 bin rename; pi reported 'MCP connection closed'.; Add isEntryMainModule(): symmetric realpathSync comparison of argv[1] and the module URL; name-independent dispatch for symlink launches, false on plain imports.; Add tests/cliEntryGate.unit.test.ts reproducer (symlink dispatch + direct control); update WORKFLOW.md TRACE-A; regenerate REFERENCES.md.; Verification: reproducer fails pre-fix and passes post-fix; npm run verify green (typecheck, 135/135 tests, build); eslint clean.
281
255
 
282
256
  ### 🚜 Changes
283
257
  - BREAKING CHANGE: remove env-var configuration, add settings commands and readable install report [useReq] *(cli)*
284
- - Remove GOOGLE_MAPS_API_KEY/GOOGLE_MAPS_ENABLED_TOOLS/MCP_SERVER_* env support and all .env/--env-file/setup logic (REQ removed: PRJ-011, CTN-007, CTN-009, REQ-087/088; dotenv dep and .env.example dropped)
285
- - Add tools/host/port config commands persisting enabledTools, host, port in ~/.config/mcp-google-api/config.json (REQ-167/168/169, DES-018)
286
- - install/uninstall now print a human-readable per-CLI activity report (REQ-166); post-upgrade parser updated
287
- - Startup banners identify the app as 'MCP Google API server' (REQ-165)
288
- - README.md documents the standard flow only; CONFIGURATION.md rewritten around the settings file
289
- - Requirements/docs updated (REQ-165..169, TST-022); tests aligned, new cliConfigCommands suite; all 129 unit tests pass
258
+ Remove GOOGLE_MAPS_API_KEY/GOOGLE_MAPS_ENABLED_TOOLS/MCP_SERVER_* env support and all .env/--env-file/setup logic (REQ removed: PRJ-011, CTN-007, CTN-009, REQ-087/088; dotenv dep and .env.example dropped); Add tools/host/port config commands persisting enabledTools, host, port in ~/.config/mcp-google-api/config.json (REQ-167/168/169, DES-018); install/uninstall now print a human-readable per-CLI activity report (REQ-166); post-upgrade parser updated; Startup banners identify the app as 'MCP Google API server' (REQ-165); README.md documents the standard flow only; CONFIGURATION.md rewritten around the settings file; Requirements/docs updated (REQ-165..169, TST-022); tests aligned, new cliConfigCommands suite; all 129 unit tests pass
290
259
 
291
260
  ## [0.21.0](https://github.com/Ogekuri/mcp-google-api/compare/v0.20.0..v0.21.0) - 2026-11-06
292
261
  ### 🚜 Changes
293
262
  - pin release automation compliance to the mcp-google-api npm package [useReq] *(release-npm)*
294
- - Add PKG-045: publish, pack, and release-asset glob derive from the distribution package name mcp-google-api.
295
- - Verified automation compliance: release-npm.yml publishes package.json name, npm pack emits mcp-google-api-<ver>.tgz, asset glob mcp-google-api-*.tgz, .galias.conf regex matches the renamed lockfile; version guard name-agnostic; registry confirms mcp-google-api exists on npmjs.
296
- - Zero superseded-name references in automation paths; REFERENCES.md regenerated unchanged.
297
- - Verification: typecheck clean, static-check clean, 133/133 unit tests pass (ciContract 6/6), build success.
263
+ Add PKG-045: publish, pack, and release-asset glob derive from the distribution package name mcp-google-api.; Verified automation compliance: release-npm.yml publishes package.json name, npm pack emits mcp-google-api-<ver>.tgz, asset glob mcp-google-api-*.tgz, .galias.conf regex matches the renamed lockfile; version guard name-agnostic; registry confirms mcp-google-api exists on npmjs.; Zero superseded-name references in automation paths; REFERENCES.md regenerated unchanged.; Verification: typecheck clean, static-check clean, 133/133 unit tests pass (ciContract 6/6), build success.
298
264
  - add mcp-google-api.sh local launcher mirroring the installed bin [useReq] *(scripts)*
299
- - Add scripts/mcp-google-api.sh named after the installed mcp-google-api distribution bin (PRJ-018).
300
- - Forward every argument unchanged to the local dist/cli.js entry with the full CLI surface; no implicit install/build steps, missing-artifact remediation message instead (PRJ-019, PKG-019).
301
- - Update SRS scripts/ tree comment and requirements; REFERENCES.md regenerated unchanged.
302
- - Verification: static-check clean, 133/133 unit tests pass; launcher guard/help/forwarding functionally verified.
265
+ Add scripts/mcp-google-api.sh named after the installed mcp-google-api distribution bin (PRJ-018).; Forward every argument unchanged to the local dist/cli.js entry with the full CLI surface; no implicit install/build steps, missing-artifact remediation message instead (PRJ-019, PKG-019).; Update SRS scripts/ tree comment and requirements; REFERENCES.md regenerated unchanged.; Verification: static-check clean, 133/133 unit tests pass; launcher guard/help/forwarding functionally verified.
303
266
  - BREAKING CHANGE: rename project to mcp-google-api and widen scope to all Google APIs [useReq] *(pkg)*
304
- - Rename package, bin, CLI script name, npm/GitHub probe endpoints, MCP entry, settings (~/.config/mcp-google-api), and idle cache paths (PRJ-016, REQ-082, 114, 115, 121, 125, 127, 162, 163).
305
- - Widen scope to Google APIs at large with Google Maps as the currently implemented family (PRJ-017, CTN-008, DES-018, DES-021).
306
- - Reword README Acknowledgments to credit CabLate without the superseded name (PKG-044).
307
- - Update SRS, WORKFLOW.md, README/docs, CHANGELOG, release workflow glob, skills, and unit-test assertions; regenerate REFERENCES.md.
308
- - Verification: typecheck clean, static-check clean, 133/133 unit tests pass, build success.
267
+ Rename package, bin, CLI script name, npm/GitHub probe endpoints, MCP entry, settings (~/.config/mcp-google-api), and idle cache paths (PRJ-016, REQ-082, 114, 115, 121, 125, 127, 162, 163).; Widen scope to Google APIs at large with Google Maps as the currently implemented family (PRJ-017, CTN-008, DES-018, DES-021).; Reword README Acknowledgments to credit CabLate without the superseded name (PKG-044).; Update SRS, WORKFLOW.md, README/docs, CHANGELOG, release workflow glob, skills, and unit-test assertions; regenerate REFERENCES.md.; Verification: typecheck clean, static-check clean, 133/133 unit tests pass, build success.
309
268
 
310
269
  ### 📚 Documentation
311
270
  - Update TODO.md file.
@@ -313,36 +272,30 @@
313
272
  ## [0.20.0](https://github.com/Ogekuri/mcp-google-api/compare/v0.19.0..v0.20.0) - 2026-11-05
314
273
  ### 🚜 Changes
315
274
  - GitHub version probe targets the Ogekuri repository [useReq] *(upgrade-manager)*
316
- - Re-point DEFAULT_GITHUB_RELEASES_API_URL (src/utils/autoUpdate.ts) from
317
- - the upstream cablate/mcp-google-map (latest release v0.0.69) to the
318
- - distribution repository Ogekuri/mcp-google-map (latest release v0.19.0),
319
- - fixing the wrong 'GitHub latest:' line of --ver/--version.
320
- - Update REQ-163 to pin the GitHub probe repository to
321
- - Ogekuri/mcp-google-map; sync TRACE-L, external boundaries, and EDGE-10
322
- - in WORKFLOW.md; REFERENCES.md regenerated unchanged.
275
+ Re-point DEFAULT_GITHUB_RELEASES_API_URL (src/utils/autoUpdate.ts) from
276
+ the upstream cablate/mcp-google-map (latest release v0.0.69) to the
277
+ distribution repository Ogekuri/mcp-google-map (latest release v0.19.0),
278
+ fixing the wrong 'GitHub latest:' line of --ver/--version.
279
+ Update REQ-163 to pin the GitHub probe repository to
280
+ Ogekuri/mcp-google-map; sync TRACE-L, external boundaries, and EDGE-10
281
+ in WORKFLOW.md; REFERENCES.md regenerated unchanged.
323
282
 
324
283
  ## [0.19.0](https://github.com/Ogekuri/mcp-google-api/compare/v0.18.0..v0.19.0) - 2026-11-05
325
284
  ### 🚜 Changes
326
285
  - --ver/--version prints installed, npmjs, and GitHub latest versions [useReq] *(upgrade-manager)*
327
- - Rewrite runVersionCommand (REQ-120): concurrent npm-registry and
328
- - GitHub-releases probes bypassing the idle cache gate (REQ-161), printing
329
- - the three-line stdout report: installed version, 'npmjs latest: <v>'
330
- - (REQ-162), 'GitHub latest: <v>' with leading v stripped (REQ-163), and
331
- - 'unknown' placeholders on undeterminable versions (REQ-164).
332
- - Add probeLatestGitHubVersion, GitHubProbeDeps, GitHubLatestVersionProbe,
333
- - and DEFAULT_GITHUB_RELEASES_API_URL to autoUpdate.ts.
334
- - Extract resolveProbeLatestVersion; resolveUpdatedVersion delegates to it.
335
- - Update SRS (REQ-120, REQ-161..REQ-164), WORKFLOW.md (TRACE-L, EDGE-06,
336
- - EDGE-07, EDGE-10), and regenerate REFERENCES.md.
286
+ Rewrite runVersionCommand (REQ-120): concurrent npm-registry and
287
+ GitHub-releases probes bypassing the idle cache gate (REQ-161), printing
288
+ the three-line stdout report: installed version, 'npmjs latest: <v>'
289
+ (REQ-162), 'GitHub latest: <v>' with leading v stripped (REQ-163), and
290
+ 'unknown' placeholders on undeterminable versions (REQ-164).
291
+ Add probeLatestGitHubVersion, GitHubProbeDeps, GitHubLatestVersionProbe,
292
+ and DEFAULT_GITHUB_RELEASES_API_URL to autoUpdate.ts.
293
+ Extract resolveProbeLatestVersion; resolveUpdatedVersion delegates to it.; Update SRS (REQ-120, REQ-161..REQ-164), WORKFLOW.md (TRACE-L, EDGE-06,
294
+ EDGE-07, EDGE-10), and regenerate REFERENCES.md.
337
295
  - add Acknowledgments section crediting CabLate's mcp-google-map [useReq] *(readme)*
338
- - Requirements: add PKG-044 (Acknowledgments as the last README.md section naming CabLate and the project URL).
339
- - README: append the Acknowledgments section after License, thanking CabLate for the mcp-google-map contribution.
340
- - Verification: full unit suite 133/133 pass; static analysis clean.
296
+ Requirements: add PKG-044 (Acknowledgments as the last README.md section naming CabLate and the project URL).; README: append the Acknowledgments section after License, thanking CabLate for the mcp-google-map contribution.; Verification: full unit suite 133/133 pass; static analysis clean.
341
297
  - publish to npm only for master tags; develop tags release without publish [useReq] *(release-npm)*
342
- - Requirements: update PKG-008/PKG-009/PKG-026/PKG-028, add PKG-042/PKG-043, update TST-020.
343
- - Workflow: branch gate resolves origin/master and origin/develop reachability, fails on neither, exports step outputs; npm publish runs only for master-reachable tags.
344
- - Develop-only version tags now build, pack, and create the GitHub Release with the tarball asset without npm publication.
345
- - Tests: refactor ciContract suite to the updated contract; targeted suite 6/6, full suite 133/133 pass.
298
+ Requirements: update PKG-008/PKG-009/PKG-026/PKG-028, add PKG-042/PKG-043, update TST-020.; Workflow: branch gate resolves origin/master and origin/develop reachability, fails on neither, exports step outputs; npm publish runs only for master-reachable tags.; Develop-only version tags now build, pack, and create the GitHub Release with the tarball asset without npm publication.; Tests: refactor ciContract suite to the updated contract; targeted suite 6/6, full suite 133/133 pass.
346
299
 
347
300
  ## [0.18.0](https://github.com/Ogekuri/mcp-google-api/compare/v0.17.0..v0.18.0) - 2026-11-05
348
301
  ### 📚 Documentation
@@ -351,259 +304,221 @@
351
304
  ## [0.17.0](https://github.com/Ogekuri/mcp-google-api/compare/v0.16.0..v0.17.0) - 2026-11-05
352
305
  ### 🚜 Changes
353
306
  - BREAKING CHANGE: migrate runtime floor to Node.js 24 and drop Node 22 workarounds [useReq] *(runtime)*
354
- - package.json engines >=24; @types/node ^24; lockfile refreshed (root identity kept)
355
- - NODE_ENGINE_FLOOR 22->24: doctor and setup checks, Doxygen docs updated
356
- - README badge/prerequisites, docs/CONFIGURATION.md floor, scripts/setup.sh gate at >=24
357
- - tests: doctor/setup floor 24 (22.x now fails); remove transitional Node<=23 --env-file tolerance (exit 9 contract)
358
- - release workflow already Node24-pinned (24.15.0, checkout@v5/setup-node@v5); requirements CTN-005/REQ-070/PKG-014 updated, PKG-041 added
359
- - verification: typecheck clean, 132/132 unit tests pass, static-check clean
307
+ package.json engines >=24; @types/node ^24; lockfile refreshed (root identity kept); NODE_ENGINE_FLOOR 22->24: doctor and setup checks, Doxygen docs updated; README badge/prerequisites, docs/CONFIGURATION.md floor, scripts/setup.sh gate at >=24; tests: doctor/setup floor 24 (22.x now fails); remove transitional Node<=23 --env-file tolerance (exit 9 contract); release workflow already Node24-pinned (24.15.0, checkout@v5/setup-node@v5); requirements CTN-005/REQ-070/PKG-014 updated, PKG-041 added; verification: typecheck clean, 132/132 unit tests pass, static-check clean
360
308
  - enforce npm publication compliance contract [useReq] *(pkg)*
361
- - Add PKG-033..PKG-040 and TST-021 codifying npm publication policies
362
- - Declare SPDX GPL-3.0-only in package.json, package-lock.json, README badge/section
363
- - Add package.json exports map (dist entry + package.json subpath)
364
- - Ship CHANGELOG.md via the files allowlist
365
- - Add tests/npmPublishContract.unit.test.ts: metadata, lockfile identity, private-flag, name policy, npm pack --dry-run tarball allowlist
309
+ Add PKG-033..PKG-040 and TST-021 codifying npm publication policies; Declare SPDX GPL-3.0-only in package.json, package-lock.json, README badge/section; Add package.json exports map (dist entry + package.json subpath); Ship CHANGELOG.md via the files allowlist; Add tests/npmPublishContract.unit.test.ts: metadata, lockfile identity, private-flag, name policy, npm pack --dry-run tarball allowlist
366
310
 
367
311
  ## [0.16.0](https://github.com/Ogekuri/mcp-google-api/compare/v0.15.0..v0.16.0) - 2026-11-05
368
312
  ### 🚜 Changes
369
313
  - publish npm via OIDC Trusted Publishing [useReq] *(release)*
370
- - REQUIREMENTS: PKG-010 switches npm publishing to OIDC Trusted Publishing (no long-lived tokens); add PKG-030 id-token: write permission, PKG-031 no publish-token secret/env, PKG-032 npm >= 11.5.1 floor on the pinned runtime; extend TST-020.
371
- - release-npm.yml: remove the publish-token secret/environment from the publish step; authentication is minted from the workflow OIDC token. Tag trigger, master gate, single job, build/pack/changelog/GitHub Release mechanics unchanged.
372
- - tests: ciContract publish test asserts OIDC permission, token absence, and the pinned runtime floor; npm test passes 124/124.
314
+ REQUIREMENTS: PKG-010 switches npm publishing to OIDC Trusted Publishing (no long-lived tokens); add PKG-030 id-token: write permission, PKG-031 no publish-token secret/env, PKG-032 npm >= 11.5.1 floor on the pinned runtime; extend TST-020.
315
+ release-npm.yml: remove the publish-token secret/environment from the publish step; authentication is minted from the workflow OIDC token. Tag trigger, master gate, single job, build/pack/changelog/GitHub Release mechanics unchanged.
316
+ tests: ciContract publish test asserts OIDC permission, token absence, and the pinned runtime floor; npm test passes 124/124.
373
317
 
374
318
  ## [0.15.0](https://github.com/Ogekuri/mcp-google-api/compare/v0.14.0..v0.15.0) - 2026-11-04
375
319
  ### 🚜 Changes
376
320
  - remove CI automation and release-time testing [useReq] *(ci)*
377
- - Delete .github/workflows/ci.yml and PKG-004: no push/PR automation.
378
- - Release pipeline keeps gate, build, pack, publish, changelog, release;
379
- - typecheck, unit tests, and the doctor smoke check are removed
380
- - (PKG-021 deleted; PKG-005/008/027 updated).
381
- - package.json prepublishOnly now runs version guard + build only.
382
- - tests/ciContract.unit.test.ts rewritten per TST-020: asserts ci.yml
383
- - absence, master-gate ordering, and no test/smoke steps in release-npm.yml.
384
- - Development-phase minimum verification stays local via npm scripts
385
- - (PKG-019: typecheck, test, verify).
321
+ Delete .github/workflows/ci.yml and PKG-004: no push/PR automation.; Release pipeline keeps gate, build, pack, publish, changelog, release;
322
+ typecheck, unit tests, and the doctor smoke check are removed
323
+ (PKG-021 deleted; PKG-005/008/027 updated).
324
+ package.json prepublishOnly now runs version guard + build only.; tests/ciContract.unit.test.ts rewritten per TST-020: asserts ci.yml
325
+ absence, master-gate ordering, and no test/smoke steps in release-npm.yml.
326
+ Development-phase minimum verification stays local via npm scripts
327
+ (PKG-019: typecheck, test, verify).
386
328
 
387
329
  ## [0.14.0](https://github.com/Ogekuri/mcp-google-api/compare/v0.13.0..v0.14.0) - 2026-11-04
388
330
  ### 🚜 Changes
389
331
  - BREAKING CHANGE: rename npm release workflow file to release-npm.yml [useReq] *(ci)*
390
- - Rename .github/workflows/release.yml to .github/workflows/release-npm.yml
391
- - as mandated by new PKG-029; the single master-tag-gated release job
392
- - (PKG-008/PKG-009/PKG-027/PKG-028) is unchanged in content.
393
- - Update the ci.yml header comment to reference the new workflow file name.
394
- - Point tests/ciContract.unit.test.ts at release-npm.yml and extend TST-020
395
- - to cover PKG-029.
396
- - REQUIREMENTS.md: add PKG-029, refresh structure tree and TST-020 mapping.
332
+ Rename .github/workflows/release.yml to .github/workflows/release-npm.yml
333
+ as mandated by new PKG-029; the single master-tag-gated release job
334
+ (PKG-008/PKG-009/PKG-027/PKG-028) is unchanged in content.
335
+ Update the ci.yml header comment to reference the new workflow file name.; Point tests/ciContract.unit.test.ts at release-npm.yml and extend TST-020
336
+ to cover PKG-029.
337
+ REQUIREMENTS.md: add PKG-029, refresh structure tree and TST-020 mapping.
397
338
  - collapse release into single master-tag-gated job [useReq] *(ci)*
398
- - requirements: PKG-009 gates the single release job; add PKG-027 (exactly one integrated release job) and PKG-028 (fail before any install/build/pack/publish when tag not on origin/master, so develop tags never build); update TST-020
399
- - release.yml: merge check-branch into one release job; master-reachability gate is the first step and exits 1 before npm ci/build/pack/publish; no parallel or separate release jobs remain
400
- - tests: ciContract gate test verifies the single-job contract and gate-before-build ordering
339
+ requirements: PKG-009 gates the single release job; add PKG-027 (exactly one integrated release job) and PKG-028 (fail before any install/build/pack/publish when tag not on origin/master, so develop tags never build); update TST-020; release.yml: merge check-branch into one release job; master-reachability gate is the first step and exits 1 before npm ci/build/pack/publish; no parallel or separate release jobs remain; tests: ciContract gate test verifies the single-job contract and gate-before-build ordering
401
340
 
402
341
  ## [0.13.0](https://github.com/Ogekuri/mcp-google-api/compare/v0.11.0..v0.13.0) - 2026-11-04
403
342
  ### 🚜 Changes
404
343
  - restrict package build to master version-tag release workflow [useReq] *(ci)*
405
- - Activate the package build only on a canonical version tag whose commit
406
- - is reachable from master (PKG-008, PKG-009, PKG-026):
407
- - ci.yml: drop build/pack/tarball-install/doctor smoke steps from push/PR
408
- - CI, which now runs lockfile install, typecheck, and unit tests only.
409
- - release.yml: build, pack, install the tarball into a temporary
410
- - environment, and run the no-Google doctor smoke check inside the
411
- - master-gated build-release job before npm publish (PKG-021).
412
- - tests/ciContract.unit.test.ts: re-target the workflow contract suite to
413
- - the new trigger/build placement and add release ordering assertions.
414
- - REQUIREMENTS.md: sharpen PKG-008, retarget PKG-021, add PKG-026/TST-020.
344
+ Activate the package build only on a canonical version tag whose commit
345
+ is reachable from master (PKG-008, PKG-009, PKG-026):
346
+ ci.yml: drop build/pack/tarball-install/doctor smoke steps from push/PR
347
+ CI, which now runs lockfile install, typecheck, and unit tests only.
348
+ release.yml: build, pack, install the tarball into a temporary
349
+ environment, and run the no-Google doctor smoke check inside the
350
+ master-gated build-release job before npm publish (PKG-021).
351
+ tests/ciContract.unit.test.ts: re-target the workflow contract suite to
352
+ the new trigger/build placement and add release ordering assertions.
353
+ REQUIREMENTS.md: sharpen PKG-008, retarget PKG-021, add PKG-026/TST-020.
415
354
 
416
355
  ## [0.11.0](https://github.com/Ogekuri/mcp-google-api/compare/v0.10.0..v0.11.0) - 2026-11-04
417
356
  ### 🐛 Bug Fixes
418
357
  - document geocode payload contract and bounded debug capture [useReq] *(skills)*
419
- - eatspot-discovery skill v1.2.0 fixes two concrete agent-run failures:
420
- - Section 13.1 now documents the real flat maps_geocode payload and
421
- - forbids dereferencing the internal {success,data} envelope (root
422
- - cause of TypeError on response.data.location during debug-register
423
- - aggregation).
424
- - Section D9 adds a mandatory bounded-capture procedure with declared
425
- - TRUNCATED payloads and register-entry integrity rules (re-execute
426
- - missing entries; mark NOT_ACCESSIBLE), preventing loss of executed
427
- - call records on size-limit aborts.
428
- - manifest.json version synced to 1.2.0; new contract unit test
429
- - tests/eatspotSkillContract.unit.test.ts guards both rules.
358
+ eatspot-discovery skill v1.2.0 fixes two concrete agent-run failures:
359
+ Section 13.1 now documents the real flat maps_geocode payload and
360
+ forbids dereferencing the internal {success,data} envelope (root
361
+ cause of TypeError on response.data.location during debug-register
362
+ aggregation).
363
+ Section D9 adds a mandatory bounded-capture procedure with declared
364
+ TRUNCATED payloads and register-entry integrity rules (re-execute
365
+ missing entries; mark NOT_ACCESSIBLE), preventing loss of executed
366
+ call records on size-limit aborts.
367
+ manifest.json version synced to 1.2.0; new contract unit test
368
+ tests/eatspotSkillContract.unit.test.ts guards both rules.
430
369
 
431
370
  ### 🚜 Changes
432
371
  - append skill debug overlays only on install --debug-skills [useReq] *(skills)*
433
- - Move eatspot-discovery debug instructions into DEBUG.md
434
- - Add optional manifest debug overlay and layout-aware skill sync
435
- - Append overlay only with install --debug-skills; show accepts both modes
436
- - Post-upgrade and api-key reinstalls never append the overlay
437
- - Requirements: REQ-152..REQ-160, REQ-126, DES-020, PRJ-012/013, TST-018/019
372
+ Move eatspot-discovery debug instructions into DEBUG.md; Add optional manifest debug overlay and layout-aware skill sync; Append overlay only with install --debug-skills; show accepts both modes; Post-upgrade and api-key reinstalls never append the overlay; Requirements: REQ-152..REQ-160, REQ-126, DES-020, PRJ-012/013, TST-018/019
438
373
  - BREAKING CHANGE: config-file-only settings, human-readable api-key, auto-update [useReq] *(cli)*
439
- - REQ-083/DES-018/DES-023/DES-024: configuration comes only from
440
- - ~/.config/mcp-google-map/config.json ({enabled, apiKey, autoUpdate});
441
- - startup resolves the API key from settings (default empty key) and the
442
- - auto-update check only runs when the autoUpdate flag is true (default on).
443
- - New auto-update enable|disable|1|0 command persists the flag. Env-var
444
- - configuration and connector env/key embedding removed (REQ-114, REQ-142).
445
- - api-key prints a human-readable operation report (REQ-137..139).
446
- - install/exec/batch-geocode drop --apikey and read the settings key.
447
- - Verified: tsc --noEmit clean; eslint clean; npm test 110/110 passing.
374
+ REQ-083/DES-018/DES-023/DES-024: configuration comes only from
375
+ ~/.config/mcp-google-map/config.json ({enabled, apiKey, autoUpdate});
376
+ startup resolves the API key from settings (default empty key) and the
377
+ auto-update check only runs when the autoUpdate flag is true (default on).
378
+ New auto-update enable|disable|1|0 command persists the flag. Env-var
379
+ configuration and connector env/key embedding removed (REQ-114, REQ-142).
380
+ api-key prints a human-readable operation report (REQ-137..139).
381
+ install/exec/batch-geocode drop --apikey and read the settings key.
382
+ Verified: tsc --noEmit clean; eslint clean; npm test 110/110 passing.
448
383
  - gate --upgrade on a latest-version necessity check [useReq] *(upgrade)*
449
- - REQ-144..147: --upgrade first runs a forced registry probe bypassing the idle gate.
450
- - Already-latest installs print the version on stdout and exit 0 with no child spawn.
451
- - Newer or undeterminable outcomes proceed with the npm update, post-upgrade install,
452
- - and stdout summary. Updates REQUIREMENTS.md, WORKFLOW.md (TRACE-L, EDGE-07, external
453
- - boundaries), and regenerated REFERENCES.md. Verified: tsc --noEmit clean; npm test
454
- - 110/110 passing (upgradeManager suite exercises the proceed path).
384
+ REQ-144..147: --upgrade first runs a forced registry probe bypassing the idle gate.
385
+ Already-latest installs print the version on stdout and exit 0 with no child spawn.
386
+ Newer or undeterminable outcomes proceed with the npm update, post-upgrade install,
387
+ and stdout summary. Updates REQUIREMENTS.md, WORKFLOW.md (TRACE-L, EDGE-07, external
388
+ boundaries), and regenerated REFERENCES.md. Verified: tsc --noEmit clean; npm test
389
+ 110/110 passing (upgradeManager suite exercises the proceed path).
455
390
 
456
391
  ## [0.10.0](https://github.com/Ogekuri/mcp-google-api/compare/v0.9.0..v0.10.0) - 2026-11-03
457
392
  ### ⛰️ Features
458
393
  - add api-key command, install placeholder, and stdio key guard [useReq] *(api-key)*
459
- - Add api-key <key> CLI: validate REQ-020 format, persist key in
460
- - ~/.config/mcp-google-map/config.json (apiKey field), then reinstall
461
- - every enabled CLI with the new key (REQ-136..REQ-139)
462
- - install: resolve embedded key as --apikey > persisted settings >
463
- - GOOGLE_MAPS_API_KEY; embed placeholder naming api-key when unset
464
- - (REQ-140, REQ-141, DES-023)
465
- - start/run: effective-key resolution incl. persisted settings and
466
- - placeholder-as-unset; stdio mode exits 1 with stderr JSON inviting
467
- - api-key when no key resolves (REQ-142, REQ-143)
468
- - Docs: REQUIREMENTS/WORKFLOW/REFERENCES updated; README documents the
469
- - command, key priority, and startup guard (PKG-025)
394
+ Add api-key <key> CLI: validate REQ-020 format, persist key in
395
+ ~/.config/mcp-google-map/config.json (apiKey field), then reinstall
396
+ every enabled CLI with the new key (REQ-136..REQ-139)
397
+ install: resolve embedded key as --apikey > persisted settings >
398
+ GOOGLE_MAPS_API_KEY; embed placeholder naming api-key when unset
399
+ (REQ-140, REQ-141, DES-023)
400
+ start/run: effective-key resolution incl. persisted settings and
401
+ placeholder-as-unset; stdio mode exits 1 with stderr JSON inviting
402
+ api-key when no key resolves (REQ-142, REQ-143)
403
+ Docs: REQUIREMENTS/WORKFLOW/REFERENCES updated; README documents the
404
+ command, key priority, and startup guard (PKG-025)
470
405
 
471
406
  ## [0.9.0](https://github.com/Ogekuri/mcp-google-api/compare/v0.8.0..v0.9.0) - 2026-11-03
472
407
  ### 🐛 Bug Fixes
473
408
  - spawn post-upgrade install via upgraded package bin [useReq] *(upgrade)*
474
- - The --upgrade post-upgrade child spawned 'npx -y mcp-google-map install',
475
- - an unversioned npx spec resolved from the npx cache/registry instead of the
476
- - package just upgraded by 'npm install -g'. A stale cached CLI copy could run
477
- - its default command (pre-v0.7.0 releases start the MCP HTTP server there),
478
- - never exit, and block the parent spawnSync forever: the user observed the
479
- - MCP server running instead of the 'install' command (REQ-126 violation).
480
- - POST_UPGRADE_INSTALL_COMMAND is now ['mcp-google-map', 'install']: the
481
- - globally installed bin of the just-upgraded package, already on PATH in
482
- - the exact --upgrade scenario; captured stdout and stderr-inherited spawn
483
- - mechanics unchanged (REQ-125, REQ-126, REQ-128).
484
- - Add tests/upgradeManager.unit.test.ts reproducer: post-upgrade child must
485
- - be the upgraded package bin with captured stdout; upgrade-child failure
486
- - propagation; no-CLI no-op; spawn-failure manual hint; uninstall child;
487
- - parseManagementCommand exact-match dispatch (PRJ-003, REQ-125, REQ-127).
488
- - Update WORKFLOW.md TRACE-L, External Boundaries and EDGE-09; regenerate
489
- - REFERENCES.md. Full suite: 110 tests passing; typecheck and static
490
- - checks clean.
409
+ The --upgrade post-upgrade child spawned 'npx -y mcp-google-map install',
410
+ an unversioned npx spec resolved from the npx cache/registry instead of the
411
+ package just upgraded by 'npm install -g'. A stale cached CLI copy could run
412
+ its default command (pre-v0.7.0 releases start the MCP HTTP server there),
413
+ never exit, and block the parent spawnSync forever: the user observed the
414
+ MCP server running instead of the 'install' command (REQ-126 violation).
415
+ POST_UPGRADE_INSTALL_COMMAND is now ['mcp-google-map', 'install']: the
416
+ globally installed bin of the just-upgraded package, already on PATH in
417
+ the exact --upgrade scenario; captured stdout and stderr-inherited spawn
418
+ mechanics unchanged (REQ-125, REQ-126, REQ-128).
419
+ Add tests/upgradeManager.unit.test.ts reproducer: post-upgrade child must
420
+ be the upgraded package bin with captured stdout; upgrade-child failure
421
+ propagation; no-CLI no-op; spawn-failure manual hint; uninstall child;
422
+ parseManagementCommand exact-match dispatch (PRJ-003, REQ-125, REQ-127).
423
+ Update WORKFLOW.md TRACE-L, External Boundaries and EDGE-09; regenerate
424
+ REFERENCES.md. Full suite: 110 tests passing; typecheck and static
425
+ checks clean.
491
426
 
492
427
  ## [0.8.0](https://github.com/Ogekuri/mcp-google-api/compare/v0.7.0..v0.8.0) - 2026-11-03
493
428
  ### 🚜 Changes
494
429
  - BREAKING CHANGE: rename venue-discovery skill to eatspot-discovery [useReq] *(skills)*
495
- - Rename the bundled agent skill identifier venue-discovery to eatspot-discovery (display name EatSpot Discovery). Updates src/resources/skills/{venue-discovery => eatspot-discovery}/SKILL.md, manifest.json id/name/path, REQUIREMENTS.md PRJ-014/REQ-027/REQ-030/REQ-033/REQ-100..REQ-109, and README.md plus docs/CONFIGURATION.md cross-references.
430
+ Rename the bundled agent skill identifier venue-discovery to eatspot-discovery (display name EatSpot Discovery). Updates src/resources/skills/{venue-discovery => eatspot-discovery}/SKILL.md, manifest.json id/name/path, REQUIREMENTS.md PRJ-014/REQ-027/REQ-030/REQ-033/REQ-100..REQ-109, and README.md plus docs/CONFIGURATION.md cross-references.
496
431
  - replace echoed install JSON with human-readable upgrade summary [useReq] *(upgrade)*
497
- - REQUIREMENTS: REQ-126 now mandates captured child install stdout; new
498
- - REQ-132..135 define the stdout summary (starting/updated versions,
499
- - install outcome, per-CLI results, unknown-version and fallback rules).
500
- - upgradeManager: runPostUpgradeSkillInstall captures child stdout and
501
- - parses per-CLI outcomes; runUpgradeCommand prints the summary on
502
- - stdout after a successful npm upgrade and returns the install code.
503
- - WORKFLOW/REFERENCES: TRACE-L, EDGE-06, EDGE-09 and symbol index
504
- - updated for the new post-upgrade rendering path.
432
+ REQUIREMENTS: REQ-126 now mandates captured child install stdout; new
433
+ REQ-132..135 define the stdout summary (starting/updated versions,
434
+ install outcome, per-CLI results, unknown-version and fallback rules).
435
+ upgradeManager: runPostUpgradeSkillInstall captures child stdout and
436
+ parses per-CLI outcomes; runUpgradeCommand prints the summary on
437
+ stdout after a successful npm upgrade and returns the install code.
438
+ WORKFLOW/REFERENCES: TRACE-L, EDGE-06, EDGE-09 and symbol index
439
+ updated for the new post-upgrade rendering path.
505
440
 
506
441
  ## [0.7.0](https://github.com/Ogekuri/mcp-google-api/compare/v0.6.0..v0.7.0) - 2026-11-03
507
442
  ### 🚜 Changes
508
443
  - gate server start on start/run, no-command help, silent version check [useReq] *(cli)*
509
- - REQUIREMENTS: PRJ-003/REQ-079/REQ-080/REQ-114/REQ-124 updated; REQ-129/130/131 and TST-017 added.
510
- - cli.ts: server runs only via start/run; bare invocation prints help with mcp-google-map v<version> header and --upgrade/--uninstall/--ver/--version epilog.
511
- - upgradeManager: no stderr output when no newer version exists (not an error).
512
- - clientSnippets/cliInstaller: stdio registrations launch 'mcp-google-map start --stdio'.
513
- - Scripts, README, CONFIGURATION docs, and spawn/snippet tests aligned; npm test 103 pass, tsc/eslint clean.
444
+ REQUIREMENTS: PRJ-003/REQ-079/REQ-080/REQ-114/REQ-124 updated; REQ-129/130/131 and TST-017 added.; cli.ts: server runs only via start/run; bare invocation prints help with mcp-google-map v<version> header and --upgrade/--uninstall/--ver/--version epilog.; upgradeManager: no stderr output when no newer version exists (not an error).; clientSnippets/cliInstaller: stdio registrations launch 'mcp-google-map start --stdio'.; Scripts, README, CONFIGURATION docs, and spawn/snippet tests aligned; npm test 103 pass, tsc/eslint clean.
514
445
 
515
446
  ## [0.6.0](https://github.com/Ogekuri/mcp-google-api/compare/v0.5.0..v0.6.0) - 2026-11-02
516
447
  ### ⛰️ Features
517
448
  - add --upgrade/--uninstall/--ver/--version with idle-gated version check [useReq] *(upgradeManager)*
518
- - Add src/utils/upgradeManager.ts: idle cache (~/.cache/mcp-google-map/), forced --ver/--version check, npm-based --upgrade with post-upgrade skill install, --uninstall (REQ-120..REQ-128)
519
- - Extract logging-free probeLatestVersion in autoUpdate.ts; startup check now idle-gated (REQ-082, REQ-121)
520
- - Fix registry accept header (406 -> application/json) so online version verification works
521
- - Update REQUIREMENTS (PRJ-003, CTN-008, DES-022, REQ-120..128), WORKFLOW (TRACE-L, EDGE-07/09), REFERENCES
449
+ Add src/utils/upgradeManager.ts: idle cache (~/.cache/mcp-google-map/), forced --ver/--version check, npm-based --upgrade with post-upgrade skill install, --uninstall (REQ-120..REQ-128); Extract logging-free probeLatestVersion in autoUpdate.ts; startup check now idle-gated (REQ-082, REQ-121); Fix registry accept header (406 -> application/json) so online version verification works; Update REQUIREMENTS (PRJ-003, CTN-008, DES-022, REQ-120..128), WORKFLOW (TRACE-L, EDGE-07/09), REFERENCES
522
450
 
523
451
  ## [0.5.0](https://github.com/Ogekuri/mcp-google-api/compare/v0.4.0..v0.5.0) - 2026-11-02
524
452
  ### ⛰️ Features
525
453
  - add enable/disable/install/uninstall/show CLI configuration commands [useReq] *(cli)*
526
- - Add enable/disable/install/uninstall/show commands managing MCP-server
527
- - registration and packaged skills for pi, openclaw, codex, antigravity,
528
- - claude (REQ-110..REQ-119, PRJ-015, DES-017..DES-020)
529
- - Add cliSettings/cliTargets/cliInstaller/cliShow utils with atomic
530
- - read-modify-write preserving unrelated config entries (JSON mcpServers
531
- - and codex TOML mcp_servers)
532
- - Fix malformed skills manifest.json; ship src/resources/skills in the
533
- - npm package (PKG-024); document commands in README (PKG-023)
534
- - Update REQUIREMENTS/WORKFLOW/REFERENCES
454
+ Add enable/disable/install/uninstall/show commands managing MCP-server
455
+ registration and packaged skills for pi, openclaw, codex, antigravity,
456
+ claude (REQ-110..REQ-119, PRJ-015, DES-017..DES-020)
457
+ Add cliSettings/cliTargets/cliInstaller/cliShow utils with atomic
458
+ read-modify-write preserving unrelated config entries (JSON mcpServers
459
+ and codex TOML mcp_servers)
460
+ Fix malformed skills manifest.json; ship src/resources/skills in the
461
+ npm package (PKG-024); document commands in README (PKG-023)
462
+ Update REQUIREMENTS/WORKFLOW/REFERENCES
535
463
 
536
464
  ### 🐛 Bug Fixes
537
465
  - Fix .gitignore file.
538
466
  - drop deprecated glob@10 via @googlemaps/places ^3.1.0 [useReq] *(deps)*
539
- - Install-time deprecation warnings traced to the production dependency tree: @googlemaps/places@2.x -> google-gax@5 -> rimraf@5 -> glob@10.5.0 (npm deprecation cites publicized security vulnerabilities).
540
- - Bump @googlemaps/places ^2.1.0 -> ^3.1.0: google-gax@^6 removes rimraf/glob from the tree; engines node >= 22 preserved; PlacesClient surface unchanged (tsc clean, 57 unit tests pass).
541
- - Add tests/dependencyTree.unit.test.ts reproducer: lockfile tree must contain no glob package and must lock @googlemaps/places at major 3. Remaining crypto-js and node-domexception deprecations plus the protobufjs install-scripts notice are upstream or npm-client-side.
467
+ Install-time deprecation warnings traced to the production dependency tree: @googlemaps/places@2.x -> google-gax@5 -> rimraf@5 -> glob@10.5.0 (npm deprecation cites publicized security vulnerabilities).
468
+ Bump @googlemaps/places ^2.1.0 -> ^3.1.0: google-gax@^6 removes rimraf/glob from the tree; engines node >= 22 preserved; PlacesClient surface unchanged (tsc clean, 57 unit tests pass).
469
+ Add tests/dependencyTree.unit.test.ts reproducer: lockfile tree must contain no glob package and must lock @googlemaps/places at major 3. Remaining crypto-js and node-domexception deprecations plus the protobufjs install-scripts notice are upstream or npm-client-side.
542
470
 
543
471
  ### 🚜 Changes
544
472
  - derive settings dir from program name, forbid generic skills dir [useReq] *(cli-settings)*
545
- - Add DES-021: settings directory MUST equal the distribution program
546
- - name mcp-google-map; shared/generic dirs like ~/.config/skills/ are
547
- - forbidden
548
- - Introduce SETTINGS_PROGRAM_NAME constant as single source of truth
549
- - for CLI_SETTINGS_RELATIVE in src/utils/cliSettings.ts
550
- - Drop the reference skills settings-path mention from documentation;
551
- - runtime path stays ~/.config/mcp-google-map/config.json (DES-018)
552
- - Regenerate REFERENCES.md
473
+ Add DES-021: settings directory MUST equal the distribution program
474
+ name mcp-google-map; shared/generic dirs like ~/.config/skills/ are
475
+ forbidden
476
+ Introduce SETTINGS_PROGRAM_NAME constant as single source of truth
477
+ for CLI_SETTINGS_RELATIVE in src/utils/cliSettings.ts
478
+ Drop the reference skills settings-path mention from documentation;
479
+ runtime path stays ~/.config/mcp-google-map/config.json (DES-018)
480
+ Regenerate REFERENCES.md
553
481
  - drop GeoScout 6.2 lineage and bind filters to venue-discovery skill [useReq] *(skills)*
554
- - Remove all GeoScout 6.2 references: PRJ-014 rewritten, docs/GEOSCOUT.md deleted, README/docs/package.json/manifest/SKILL/NewPlacesService cleaned
555
- - Bind filters and raw-payload implementations to the in-project venue-discovery skill and vice-versa (REQ-027, REQ-030, REQ-033, new REQ-109)
556
- - Rename tests/geoscoutFilters.unit.test.ts to placesFilters.unit.test.ts (titles only; TST-003 updated); npm test 102/102 green
482
+ Remove all GeoScout 6.2 references: PRJ-014 rewritten, docs/GEOSCOUT.md deleted, README/docs/package.json/manifest/SKILL/NewPlacesService cleaned; Bind filters and raw-payload implementations to the in-project venue-discovery skill and vice-versa (REQ-027, REQ-030, REQ-033, new REQ-109); Rename tests/geoscoutFilters.unit.test.ts to placesFilters.unit.test.ts (titles only; TST-003 updated); npm test 102/102 green
557
483
  - add venue-discovery skill and skills resource framework [useReq] *(skills)*
558
- - Add src/resources/skills: manifest.json registry + README.md authoring guide (PRJ-012..014, REQ-097..108)
559
- - Add venue-discovery SKILL.md: GeoScout 6.2 translated to English and bound to mcp-google-map; all 18 tools mapped; budget/priceLevels/priceRange rules, grades A-E, categories, hours, geo modes, progressive search, output A-D + DEBUG
560
- - REQUIREMENTS.md: skills section; WORKFLOW.md: inert-resources note
484
+ Add src/resources/skills: manifest.json registry + README.md authoring guide (PRJ-012..014, REQ-097..108); Add venue-discovery SKILL.md: GeoScout 6.2 translated to English and bound to mcp-google-map; all 18 tools mapped; budget/priceLevels/priceRange rules, grades A-E, categories, hours, geo modes, progressive search, output A-D + DEBUG; REQUIREMENTS.md: skills section; WORKFLOW.md: inert-resources note
561
485
  - add setup+snippet commands, typed config, doctor probes, loopback *(cli)*
562
- - Requirements: PRJ-003/006/009-011, CTN-005/007-009, DES-014-016, REQ-008/009/070/079/087-096, PKG-003-005/018-022, TST-002/012-016; LIM-003 removed (doctor now enforces engines >= 22).
563
- - New: non-interactive setup onboarding, snippet generator, tool/API profiles, typed config resolver with --env-file and secret masking.
564
- - Doctor: engines floor 22, masked config diagnostics, per-tool API profiles, selectable --probes (legacy --live preserved).
565
- - HTTP: loopback default 127.0.0.1 (migration documented), non-zero exit on failed startup, SIGINT/SIGTERM orderly shutdown; stdio from ready artifact.
566
- - Tooling: no implicit script chains, npm run verify pipeline, CI 3-OS matrix with tarball install + no-Google-API smoke; docs aligned with supported CLI/headers.
567
- - Tests: 6 new unit suites; 93 unit tests pass; typecheck and build clean.
486
+ Requirements: PRJ-003/006/009-011, CTN-005/007-009, DES-014-016, REQ-008/009/070/079/087-096, PKG-003-005/018-022, TST-002/012-016; LIM-003 removed (doctor now enforces engines >= 22).
487
+ New: non-interactive setup onboarding, snippet generator, tool/API profiles, typed config resolver with --env-file and secret masking.; Doctor: engines floor 22, masked config diagnostics, per-tool API profiles, selectable --probes (legacy --live preserved).; HTTP: loopback default 127.0.0.1 (migration documented), non-zero exit on failed startup, SIGINT/SIGTERM orderly shutdown; stdio from ready artifact.; Tooling: no implicit script chains, npm run verify pipeline, CI 3-OS matrix with tarball install + no-Google-API smoke; docs aligned with supported CLI/headers.; Tests: 6 new unit suites; 93 unit tests pass; typecheck and build clean.
568
488
 
569
489
  ### 🎯 Cover Requirements
570
490
  - add spawn-level env-file/HTTP/shutdown and CI-contract tests *(tests)*
571
- - Close verification-coverage gaps of the new contracts without SRS changes:
572
- - tests/cliSpawn.unit.test.ts: process-level --env-file tests (missing file non-zero exit with JSON error on the exit-1 path, Node>=24 exit-9 tolerated; existing file loads for both argv forms before doctor), HTTP server startup from an env-file port with loopback endpoint and SIGTERM orderly shutdown (exit 0, 'HTTP server stopped'), and the start-mcp.sh missing-artifact remediation guard (non-win32).
573
- - tests/ciContract.unit.test.ts: static regression guard for the CI contract (3-OS matrix, lockfile install, typecheck/test/build, tarball install, doctor smoke with placeholder key, e2e excluded).
574
- - src/cli.ts: export extractEnvFileOption for direct unit testing; no behavior change.
575
- - WORKFLOW.md unchanged (no runtime-model impact); REFERENCES.md regenerated.
576
- - Verification: 102/102 unit tests pass; typecheck and static-check clean.
491
+ Close verification-coverage gaps of the new contracts without SRS changes:
492
+ tests/cliSpawn.unit.test.ts: process-level --env-file tests (missing file non-zero exit with JSON error on the exit-1 path, Node>=24 exit-9 tolerated; existing file loads for both argv forms before doctor), HTTP server startup from an env-file port with loopback endpoint and SIGTERM orderly shutdown (exit 0, 'HTTP server stopped'), and the start-mcp.sh missing-artifact remediation guard (non-win32).; tests/ciContract.unit.test.ts: static regression guard for the CI contract (3-OS matrix, lockfile install, typecheck/test/build, tarball install, doctor smoke with placeholder key, e2e excluded).; src/cli.ts: export extractEnvFileOption for direct unit testing; no behavior change.; WORKFLOW.md unchanged (no runtime-model impact); REFERENCES.md regenerated.; Verification: 102/102 unit tests pass; typecheck and static-check clean.
577
493
 
578
494
  ## [0.4.0](https://github.com/Ogekuri/mcp-google-api/compare/v0.3.0..v0.4.0) - 2026-10-30
579
495
  ### 🚜 Changes
580
496
  - enable startup update check by default with opt-out [useReq] *(auto-update)*
581
- - Add auto-update check at MCP server startup (stdio + HTTP), enabled by
582
- - default (REQ-082), comparing running version vs npm registry latest.
583
- - Add inverse-polarity disable variable MCP_AUTO_UPDATE_DISABLED
584
- - (1/true/yes case-insensitive) skipping all registry calls (REQ-083).
585
- - Report newer versions on stderr only with upgrade command (REQ-084);
586
- - fire-and-forget execution tolerates all failures without blocking
587
- - startup (REQ-085).
588
- - New src/utils/autoUpdate.ts with injectable fetch/logger/env; new
589
- - tests/autoUpdate.unit.test.ts covering TST-011 (55/55 pass).
590
- - Document variable in .env.example and docs/CONFIGURATION.md (REQ-086);
591
- - update REQUIREMENTS.md, WORKFLOW.md, REFERENCES.md.
497
+ Add auto-update check at MCP server startup (stdio + HTTP), enabled by
498
+ default (REQ-082), comparing running version vs npm registry latest.
499
+ Add inverse-polarity disable variable MCP_AUTO_UPDATE_DISABLED
500
+ (1/true/yes case-insensitive) skipping all registry calls (REQ-083).
501
+ Report newer versions on stderr only with upgrade command (REQ-084);
502
+ fire-and-forget execution tolerates all failures without blocking
503
+ startup (REQ-085).
504
+ New src/utils/autoUpdate.ts with injectable fetch/logger/env; new
505
+ tests/autoUpdate.unit.test.ts covering TST-011 (55/55 pass).
506
+ Document variable in .env.example and docs/CONFIGURATION.md (REQ-086);
507
+ update REQUIREMENTS.md, WORKFLOW.md, REFERENCES.md.
592
508
  - enforce publish version guard via prepublishOnly [useReq] *(packaging)*
593
- - Add PKG-017 to SRS 2.3: npm publish MUST fail when package.json version is 0.0.0-based or carries a prerelease/build suffix (stray 0.0.0-stage incident).
594
- - Add scripts/check-publish-version.mjs (Doxygen-documented): strict X.Y.Z pattern plus 0.0.0 placeholder prefix check; wired as first stage of prepublishOnly, preserving PKG-005 chain (typecheck, tests, build).
595
- - Verified: tsc --noEmit clean, 41/41 unit tests, npm publish --dry-run full chain, refusal cases 0.0.0-stage and 1.2.3-rc.1 exit 1.
596
- - Ops: unpublished mcp-google-map@0.0.0-stage from the npm registry.
509
+ Add PKG-017 to SRS 2.3: npm publish MUST fail when package.json version is 0.0.0-based or carries a prerelease/build suffix (stray 0.0.0-stage incident).
510
+ Add scripts/check-publish-version.mjs (Doxygen-documented): strict X.Y.Z pattern plus 0.0.0 placeholder prefix check; wired as first stage of prepublishOnly, preserving PKG-005 chain (typecheck, tests, build).
511
+ Verified: tsc --noEmit clean, 41/41 unit tests, npm publish --dry-run full chain, refusal cases 0.0.0-stage and 1.2.3-rc.1 exit 1.
512
+ Ops: unpublished mcp-google-map@0.0.0-stage from the npm registry.
597
513
 
598
514
  ## [0.3.0](https://github.com/Ogekuri/mcp-google-api/compare/v0.2.0..v0.3.0) - 2026-10-29
599
515
  ### 🚜 Changes
600
516
  - document pi CLI and OpenClaw MCP registration and Google API prerequisites [useReq] *(docs)*
601
- - Add PKG-015/PKG-016: MCP client registration docs and configuration
602
- - prerequisites for pi CLI and OpenClaw in README and CONFIGURATION
603
- - README: fix stale 'From npm (once published)', add pi CLI, OpenClaw
604
- - and configuration-prerequisites sections linked to the Google API table
605
- - docs/CONFIGURATION.md: add 'Registrazione nei client MCP' section
606
- - No source or test changes; typecheck and 41 unit tests pass
517
+ Add PKG-015/PKG-016: MCP client registration docs and configuration
518
+ prerequisites for pi CLI and OpenClaw in README and CONFIGURATION
519
+ README: fix stale 'From npm (once published)', add pi CLI, OpenClaw
520
+ and configuration-prerequisites sections linked to the Google API table
521
+ docs/CONFIGURATION.md: add 'Registrazione nei client MCP' section; No source or test changes; typecheck and 41 unit tests pass
607
522
 
608
523
  ## [0.2.0](https://github.com/Ogekuri/mcp-google-api/releases/tag/v0.2.0) - 2026-10-29
609
524
  ### ⛰️ Features
@@ -615,28 +530,16 @@
615
530
 
616
531
  ### 🚜 Changes
617
532
  - migrate tag pipeline with master gate, npm publish and commit changelog *(release)*
618
- - Rewrite .github/workflows/release.yml from /tmp/release-npm.yml desiderata
619
- - Trigger only canonical tags v[0-9]+.[0-9]+.[0-9]+ gated on origin/master
620
- - Publish to npm with provenance (OIDC) and --access public via NPM_TOKEN
621
- - Changelog via mikepenz/release-changelog-builder v6 (COMMIT mode)
622
- - Release asset: npm tarball instead of raw sources (fail on unmatched)
623
- - SRS: PKG-008 modified, PKG-009..PKG-014 added [useReq]
533
+ Rewrite .github/workflows/release.yml from /tmp/release-npm.yml desiderata; Trigger only canonical tags v[0-9]+.[0-9]+.[0-9]+ gated on origin/master; Publish to npm with provenance (OIDC) and --access public via NPM_TOKEN; Changelog via mikepenz/release-changelog-builder v6 (COMMIT mode); Release asset: npm tarball instead of raw sources (fail on unmatched); SRS: PKG-008 modified, PKG-009..PKG-014 added [useReq]
624
534
  - add publication readiness with CI, release workflow and README fixes *(packaging)*
625
- - Add PKG-001..008 packaging/publication requirements (SRS section 2.3)
626
- - Fix README: Node/TS badges, remove TODOs, working anchors, Feature Highlights and Install/Uninstall sections (npm, npx, cross-platform)
627
- - Add .github/workflows/ci.yml (node 22: npm ci, typecheck, unit tests; e2e excluded)
628
- - Add .github/workflows/release.yml (tag: verify, build, npm pack, GitHub Release)
629
- - Add prepublishOnly script; rename doctor package label; bump 0.0.0 -> 0.1.0 [useReq]
535
+ Add PKG-001..008 packaging/publication requirements (SRS section 2.3); Fix README: Node/TS badges, remove TODOs, working anchors, Feature Highlights and Install/Uninstall sections (npm, npx, cross-platform); Add .github/workflows/ci.yml (node 22: npm ci, typecheck, unit tests; e2e excluded); Add .github/workflows/release.yml (tag: verify, build, npm pack, GitHub Release); Add prepublishOnly script; rename doctor package label; bump 0.0.0 -> 0.1.0 [useReq]
630
536
  - align SRS and workflow with places pagination fix [useReq] *(docs)*
631
- - Analyze commit ab2a65c and update canonical docs to the true state.
632
- - REQ-029 rewritten: pageSize/maxResultCount translated to a single
633
- - maxResultCount field clamped 1-20 (SDK proto lacks pageSize)
634
- - REQ-081 added: nextPageToken surfaced when the API returns one
635
- - LIM-007 added: pageToken forwarded but dropped by @googlemaps/places
636
- - protos (<= v3.1.0), so pagination has no server-side effect
637
- - TST-003 extended to the pageSize-to-maxResultCount translation test
638
- - WORKFLOW.md searchTextFull trace node updated; REFERENCES.md regenerated
639
- - No source changes: commit ab2a65c already implemented the fix (41/41 tests pass)
537
+ Analyze commit ab2a65c and update canonical docs to the true state.
538
+ REQ-029 rewritten: pageSize/maxResultCount translated to a single
539
+ maxResultCount field clamped 1-20 (SDK proto lacks pageSize)
540
+ REQ-081 added: nextPageToken surfaced when the API returns one; LIM-007 added: pageToken forwarded but dropped by @googlemaps/places
541
+ protos (<= v3.1.0), so pagination has no server-side effect
542
+ TST-003 extended to the pageSize-to-maxResultCount translation test; WORKFLOW.md searchTextFull trace node updated; REFERENCES.md regenerated; No source changes: commit ab2a65c already implemented the fix (41/41 tests pass)
640
543
 
641
544
  ### 📚 Documentation
642
545
  - Update REFERENCES.md document. [useReq] *(references)*
@@ -668,6 +571,7 @@
668
571
  - \[0.24.0\]: https://github.com/Ogekuri/mcp-google-api/releases/tag/v0.24.0
669
572
  - \[0.25.0\]: https://github.com/Ogekuri/mcp-google-api/releases/tag/v0.25.0
670
573
  - \[0.26.0\]: https://github.com/Ogekuri/mcp-google-api/releases/tag/v0.26.0
574
+ - \[0.26.2\]: https://github.com/Ogekuri/mcp-google-api/releases/tag/v0.26.2
671
575
 
672
576
  [0.2.0]: https://github.com/Ogekuri/mcp-google-api/releases/tag/v0.2.0
673
577
  [0.3.0]: https://github.com/Ogekuri/mcp-google-api/compare/v0.2.0..v0.3.0
@@ -693,3 +597,4 @@
693
597
  [0.24.0]: https://github.com/Ogekuri/mcp-google-api/compare/v0.23.0..v0.24.0
694
598
  [0.25.0]: https://github.com/Ogekuri/mcp-google-api/compare/v0.24.0..v0.25.0
695
599
  [0.26.0]: https://github.com/Ogekuri/mcp-google-api/compare/v0.25.0..v0.26.0
600
+ [0.26.2]: https://github.com/Ogekuri/mcp-google-api/compare/v0.26.0..v0.26.2