@pulsarinteractive/geniusfitness 0.1.0-beta.3 → 0.1.0-beta.5

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,5 +1,19 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.1.0-beta.5 — 2026-10-24
4
+
5
+ - Add session analysis with measured time per set and exercise, real rest and missing-data coverage.
6
+ - Page large session details with revision-checked continuation.
7
+ - Improve progress-review guidance and distinguish timer intervals from physical effort.
8
+ - Keep operational quota tables out of routine MCP introductions while preserving server controls.
9
+
10
+ ## 0.1.0-beta.4 — 2026-10-23
11
+
12
+ - Add on-demand workflow guides to hosted and local MCP and `workflow show` to the CLI.
13
+ - Correct hosted archive filters to the API values `active`, `archived` and `all`.
14
+ - Explain remote immutable-command recovery separately from the local operation journal.
15
+ - Expand connection, permissions, product workflows and live application update documentation.
16
+
3
17
  ## 0.1.0-beta.3
4
18
 
5
19
  - Explain shared account quotas across CLI, local MCP and ChatGPT.
package/docs/CHATGPT.md CHANGED
@@ -48,3 +48,41 @@ Editing another athlete’s program requires the Coach subscription, explicit co
48
48
  - The public tool catalogue is in [`remote/tool-catalog.json`](../remote/tool-catalog.json). Tools are described separately from private backend implementation.
49
49
 
50
50
  A custom connection is separate from an OpenAI directory listing. See [official publication](OPENAI_PUBLICATION.md). The CLI and local MCP remain supported independently.
51
+
52
+ ## If the connection only allows reading
53
+
54
+ 1. Open this app’s settings in ChatGPT and choose **Refresh tools** when available.
55
+ 2. Choose **Reconnect** for the connected account. Check that the correct account
56
+ appears on the product consent screen.
57
+ 3. The requested permissions are selected by default. Keep the ones you want,
58
+ including editing, then authorize. Explicitly restricted connections stay
59
+ restricted; old grants are never silently expanded.
60
+ 4. Ask the assistant to read its **identity** and **capabilities** again. Confirm
61
+ that the required permissions and write commands appear before requesting an edit.
62
+
63
+ A new conversation may be needed after the tool catalogue changes. A CLI login
64
+ is a separate connection and does not update ChatGPT’s permissions.
65
+
66
+ ## Guides available to the assistant
67
+
68
+ The connector includes a `fitness_workflow` tool. Ask it for the relevant guide
69
+ before an unfamiliar operation. These are reviewed instructions served directly
70
+ by the connector; custom ChatGPT connections do not automatically install the
71
+ skill files from this repository.
72
+
73
+ See [supported workflows](WORKFLOWS.md) for examples and boundaries, and
74
+ [CLI setup](CLI.md) for a terminal or local MCP connection. The local CLI can also
75
+ show a guide without downloading account data:
76
+
77
+ ```sh
78
+ geniusfitness workflow show --topic mutations --json
79
+ ```
80
+
81
+ ## See changes in the application
82
+
83
+ An accepted connector command changes the same data used by the application.
84
+ The open application’s normal realtime subscription receives a version hint and
85
+ loads the canonical change. When reconnecting after a network interruption, the
86
+ application catches up through its existing sync system. A server receipt and a
87
+ screen update are different observations: the assistant should verify the changed
88
+ record, and should not claim to have seen your screen unless it actually did.
package/docs/OPENAI.md CHANGED
@@ -5,3 +5,17 @@ Use [the hosted ChatGPT connection guide](CHATGPT.md) for a remote OAuth MCP con
5
5
  For terminal-based agents, the existing local MCP configuration and skills remain available; see [integrations](INTEGRATIONS.md). Local filesystem features remain local.
6
6
 
7
7
  Public directory publication is a separate review: [submission checklist](OPENAI_PUBLICATION.md). A custom plugin is not a directory approval or an OpenAI endorsement.
8
+
9
+ ### Reconnecting with edit permissions
10
+
11
+ The remote catalogue exposes permission-specific read and edit tools. This lets
12
+ ChatGPT request the permissions needed for tasks, planning and other supported
13
+ actions when linking or reconnecting an account. Consent remains editable;
14
+ selecting fewer permissions keeps the connection restricted. Coach tools also
15
+ require the Coach subscription and explicit access to the athlete's program.
16
+
17
+ Older linked accounts may have only read permissions. Refresh the plugin tools
18
+ and reconnect if editing permissions are missing; verify the connected account
19
+ and capabilities before working. Reconnection never bypasses account quotas.
20
+ The generic read/execute entry points remain for existing clients; new workflows
21
+ should prefer the permission-specific tools after preparing an immutable command.
@@ -0,0 +1,46 @@
1
+ # Understand a training session
2
+
3
+ Ask ChatGPT: “Compare my recent squat sessions. Check the time spent on each set
4
+ and my rests before interpreting the total duration.”
5
+
6
+ The connector can read a specific recorded session through
7
+ `fitness_session_analysis`. The CLI equivalent is:
8
+
9
+ ```sh
10
+ geniusfitness sessions analyze --scope project:PROGRAM_ID --id SESSION_ID --json
11
+ ```
12
+
13
+ Find real session IDs in the program's `sessions` collection. Exercise IDs refer
14
+ to your exercise library; reuse the catalogue identity when comparing movements.
15
+
16
+ | Information | Meaning |
17
+ | ------------------------- | --------------------------------------------------------------------------------------------- |
18
+ | Recorded session duration | Duration saved by the application; separate from the wall-clock span |
19
+ | Set elapsed time | Time recorded by the set timer; it may include interruptions |
20
+ | Actual rest | Measured rest following that set, when recorded |
21
+ | Target rest | The planned rest, which is not a measurement |
22
+ | Completion time | When the set was marked complete |
23
+ | Timing coverage | Number of completed sets with a measurement versus eligible completed sets |
24
+ | Long timer observation | A set or rest timer reached ten minutes; a reason to ask for context, not proof of an absence |
25
+
26
+ Missing time is reported as `null`; a measured zero stays zero. Disabled timing,
27
+ skipped sets and corrections remain distinct. Old sessions are not filled with
28
+ invented measurements. An exercise's duration value is not substituted for a
29
+ missing elapsed timer.
30
+
31
+ Set details page at 50 entries. Continue with `nextSetOffset` as `offset` and the
32
+ same `revision`. If the session changes, restart the read. Exercise totals and
33
+ coverage describe the recorded session; one page is not the whole set inventory.
34
+
35
+ ```sh
36
+ geniusfitness sessions analyze --scope project:PROGRAM_ID --id SESSION_ID \
37
+ --offset 50 --revision REVISION --json
38
+ ```
39
+
40
+ This requires `metrics:read` and current access to the program. Coach access is
41
+ limited to shared programs and does not include an athlete's private health.
42
+ Historical Watch BPM is not part of this session analysis. A live watch display
43
+ does not mean that a heart-rate time series was saved or shared with the agent.
44
+
45
+ Operational limits are enforced by the service. Ordinary training reviews focus
46
+ on your question; a service refusal remains explicit when it prevents an action.
@@ -0,0 +1,36 @@
1
+ # GeniusFitness workflows
2
+
3
+ | What you want | Guide topic | Operations |
4
+ | -------------------------------------- | ------------ | ------------------------------------------------------------------------------------------------------------------------------- |
5
+ | Find a movement or create a custom one | `catalogue` | Search catalogue; reuse/import an exercise; create, update or delete a custom exercise; maintain workout slots and instructions |
6
+ | Plan training | `planning` | Create/update/delete programs, workout templates, individual planning entries, recurring schedules and goals |
7
+ | Review recent performances | `progress` | Daily totals and targeted session analysis with per-set timing, rest and measurement coverage |
8
+ | Read or record measurements | `progress` | Your stored personal health records, with separate consent |
9
+ | Work with a student | `coaching` | Shared program workouts, planning and results, with Coach, coaching permission and current membership |
10
+ | Recover an interrupted edit | `mutations` | Preserve the exact request; read back; reconcile a revision conflict |
11
+ | Connect or fix missing permissions | `connection` | Correct account, consent and reconnect |
12
+
13
+ Use `fitness_workflow` in MCP or `geniusfitness workflow show --topic TOPIC`.
14
+ Use command help for current field types rather than copying guessed payloads.
15
+ For timing and measurement coverage, see [Understand a training session](PROGRESS.md).
16
+
17
+ ## Example requests
18
+
19
+ - “Find a catalogue squat variation using dumbbells and add it to my Tuesday workout.”
20
+ - “Create a custom exercise for this movement, with three sets of eight and 90 seconds rest.”
21
+ - “Move my recurring training from Thursday to Saturday, keeping my timezone.”
22
+ - “Compare my recorded sessions over the last four weeks.”
23
+ - “Show my recent stored weight measurements.”
24
+ - “As coach, update the workout in the program my student shared with me.”
25
+
26
+ ## Boundaries that remain important
27
+
28
+ The athlete must share the program through the application. Coach access never
29
+ exposes another account’s private health or personal exercise library. The
30
+ connector reads stored health measurements; it does not connect directly to
31
+ Apple Health on a phone. A completed session is a fact, not a planning template.
32
+ Deleting the final finished result can reopen its linked plan under ordinary task
33
+ permissions. Read back affected planning after that operation.
34
+
35
+ Writes do not manage subscriptions, billing or permission grants. The account’s
36
+ [limits](LIMITS.md) apply across ChatGPT, CLI and local MCP together.
@@ -1,3 +1,3 @@
1
1
  [mcp_servers.geniusfitness]
2
2
  command = "npx"
3
- args = ["-y", "@pulsarinteractive/geniusfitness@0.1.0-beta.3", "mcp", "--context", "work"]
3
+ args = ["-y", "@pulsarinteractive/geniusfitness@0.1.0-beta.5", "mcp", "--context", "work"]
package/examples/mcp.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "mcpServers": {
3
3
  "geniusfitness": {
4
4
  "command": "npx",
5
- "args": ["-y", "@pulsarinteractive/geniusfitness@0.1.0-beta.3", "mcp", "--context", "work"]
5
+ "args": ["-y", "@pulsarinteractive/geniusfitness@0.1.0-beta.5", "mcp", "--context", "work"]
6
6
  }
7
7
  }
8
8
  }
package/mcp.json CHANGED
@@ -4,7 +4,7 @@
4
4
  "geniusfitness": {
5
5
  "type": "stdio",
6
6
  "command": "npx",
7
- "args": ["-y", "@pulsarinteractive/geniusfitness@0.1.0-beta.3", "mcp", "--context", "work"]
7
+ "args": ["-y", "@pulsarinteractive/geniusfitness@0.1.0-beta.5", "mcp", "--context", "work"]
8
8
  }
9
9
  }
10
10
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pulsarinteractive/geniusfitness",
3
- "version": "0.1.0-beta.3",
3
+ "version": "0.1.0-beta.5",
4
4
  "private": false,
5
5
  "description": "GeniusFitness CLI and MCP for training plans, exercise catalogues and progress",
6
6
  "type": "module",
package/plugin.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
3
3
  "name": "geniusfitness",
4
- "version": "0.1.0-beta.3",
4
+ "version": "0.1.0-beta.5",
5
5
  "description": "Manage training plans, exercise catalogues and activity progress with your own agents.",
6
6
  "author": {
7
7
  "name": "Pulsar Interactive"