@battlegrid/mcp-server 31.2.0 → 31.2.1

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/README.md CHANGED
@@ -24,7 +24,7 @@ Seeing package `31.x` alongside handshake `battlegrid@33.x` — the package **be
24
24
 
25
25
  **What this changes for you:** nothing about how you call anything. Upgrading the package no longer waits on a server deploy, and a server deploy no longer strands you on a package that names the wrong contract — reconnect and the announcement follows. **Contract breaking-change notes are no longer keyed to package versions**, since a contract move is no longer a release here; the v11-and-earlier notes below are kept as history, and the live vocabulary is always discovery.
26
26
 
27
- ## Contract history — v37 → v48.1
27
+ ## Contract history — v37 → v49.3
28
28
 
29
29
  Eleven majors reached authors while this section stopped at v36. That gap is the mechanism, not an
30
30
  oversight: since v31 a contract move needs no release here, so nothing forced a note to be written —
@@ -32,6 +32,27 @@ and the documentation ships inside the tarball, so a note written but unpublishe
32
32
  Both halves are now closed by a rule keyed to the *served* contract rather than to a release of this
33
33
  package.
34
34
 
35
+ ### Accepted again — input that was rejected now compiles
36
+
37
+ Nothing to migrate. This is the one direction that cannot break a client: a body the server used to
38
+ refuse is now stored. Listed because a client that special-cased the refusal can delete that branch.
39
+
40
+ - **An arming trigger no longer constrains its required conditions' clock** (49.2.0,
41
+ `restore-arming-trigger-authoring`). `compile_strategy_plan`, `apply_strategy_plan` and
42
+ `fork_strategy` accept a strategy whose entry trigger is `ON_CANDLE_CLOSE`, `STOP_THROUGH_LEVEL`
43
+ or `ON_RETEST` **while a required condition reads the `LIVE` clock**. v48.1 announced that pairing
44
+ as rejected, naming the offending condition key on `VALIDATION_ERROR`; that refusal is gone.
45
+
46
+ Why it was withdrawn, since the reasoning matters more than the rule: it ran against the whole
47
+ assembled strategy, so it refused *every* edit to a strategy in that shape — a rename, one report
48
+ column, one signal weight — plus restore and fork. For a strategy whose required conditions read
49
+ columns that can never carry a `CLOSE` clock (zone distances, perp/spot flow), there was no legal
50
+ shape to move to at all. And its premise — that the pairing can never fire — was measured before
51
+ the arming lifecycle was corrected, and no longer holds.
52
+
53
+ The underlying question, *should an entry that waits for a close be decided on a forming bar*, is
54
+ now settled where the decision is made rather than by refusing the author's declaration.
55
+
35
56
  ### Changed meaning, unchanged shape
36
57
 
37
58
  - **Three tools serve different values for identical input** (47.3.0, `derive-scan-fetch-from-report`).
@@ -158,6 +179,23 @@ package.
158
179
 
159
180
  ### Reshaped output — the same call returns a different shape
160
181
 
182
+ - **An entry void now names the gate that refused it** (49.3.0,
183
+ `fix-arming-trigger-clock-authority`), on `get_radar_activity_summary`. In the cause rollup, the
184
+ `ENTRY_VOID` group's `gateCode` widens from always-`null` to `QualificationGateCode | null`: a
185
+ conditions-side void carries the gate that blocked — `AGGREGATE_BELOW_MIN`,
186
+ `REQUIRED_COUNT_BELOW_MIN`, `REQUIRED_CONDITION_FALSE` — while a band void stays `null`, because
187
+ that void happens on a reading that qualified and has no failing gate to name.
188
+
189
+ A client that renders the field through the same enum the response already uses on four other
190
+ cause arms needs no change. One that treated it as a literal `null` — a strict decoder pinning the
191
+ type, or a branch keyed to its absence — sees a value it did not expect. That is the whole
192
+ migration.
193
+
194
+ Why it moved: the group previously collapsed every conditions-side void under one label. The
195
+ first 26 in production carried that label while two different gates had produced them, and none of
196
+ them was a required condition being false. The rollup ships counts rather than rows, so the gate
197
+ could not be recovered client-side.
198
+
161
199
  - **The normalized report section loses `timeframe`** (48.0.0, `remove-section-anchor-override`), on
162
200
  every tool that publishes a strategy: `get_strategy`, `fork_strategy`, `archive_strategy`,
163
201
  `restore_strategy`, `update_strategy_signal_rule`, `apply_strategy_plan`, and
package/dist/index.d.ts CHANGED
@@ -49,7 +49,7 @@ import { type Implementation, type Prompt, type Resource } from '@modelcontextpr
49
49
  * being asked. Move it for a change to THIS package — a proxy fix, a dependency bump, a docs
50
50
  * correction. Never move it to track the server.
51
51
  */
52
- export declare const PACKAGE_VERSION = "31.2.0";
52
+ export declare const PACKAGE_VERSION = "31.2.1";
53
53
  export declare const DEFAULT_URL = "https://mcp.battlegrid.trade/mcp";
54
54
  export interface EnvConfig {
55
55
  apiKeys: string[];
package/dist/index.js CHANGED
@@ -52,7 +52,7 @@ import { ListToolsRequestSchema, CallToolRequestSchema, ListPromptsRequestSchema
52
52
  * being asked. Move it for a change to THIS package — a proxy fix, a dependency bump, a docs
53
53
  * correction. Never move it to track the server.
54
54
  */
55
- export const PACKAGE_VERSION = '31.2.0';
55
+ export const PACKAGE_VERSION = '31.2.1';
56
56
  export const DEFAULT_URL = 'https://mcp.battlegrid.trade/mcp';
57
57
  const MAX_RETRIES = 3;
58
58
  const RETRY_DELAYS_MS = [2000, 4000, 8000];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@battlegrid/mcp-server",
3
- "version": "31.2.0",
3
+ "version": "31.2.1",
4
4
  "description": "BattleGrid MCP server — play crypto prediction games from AI agents",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",