Update to Flow State
Snapshot Oct 24, 2026 · 12:57 UTC · version 2.3.0
Package or technical metadata updated
Package or technical metadata updated
Observed in package metadata. These changes alone do not establish a new customer-facing feature.
Up to 3 plugins free · no card required.
All fields and original values.
These are saved file metadata. Open a changed file to read its text edits.
Package file
Sep 30, 2026 · 22:53 UTC
3dae1250177436945467cbf2d0a6750dab8d19daa13674283f62900200c2cd23
Oct 24, 2026 · 12:57 UTC
db9076f5de21154c97538114aae471547d39a26c7640760abacbd5619b417817
Package file
Sep 30, 2026 · 22:53 UTC
127
Oct 24, 2026 · 12:57 UTC
102
Package file
Sep 30, 2026 · 22:53 UTC
{"sha256":"ce6e8272c962d779d629e26226905ea684c50c1f22dfca72df8a85700467efee","size":1304}
Oct 24, 2026 · 12:57 UTC
Not present
Package file
Sep 30, 2026 · 22:53 UTC
Not present
Oct 24, 2026 · 12:57 UTC
{"sha256":"6b178187726b9066b6a3310c5a771b7961bd1a7344b85f1a304f92633591b105","size":598234}
Compare saved observations
Download comparison JSONChanged files
Choose a file to see its text changes. Binary or large files show metadata only.
mcp.json →
plugin.json
− removed · + added
--- before +++ after @@ -0,0 +1,110 @@ +{ + "$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json", + "name": "app-69fba9b0478081919b350556a92f0f77", + "version": "2.3.0", + "description": "Browse a private training-calendar sidebar and workout conversation panel, review endurance training, and plan workouts with Flow State.", + "author": { + "name": "Flow State Endurance", + "email": "support@reachflowstate.ai", + "url": "https://www.reachflowstate.ai" + }, + "homepage": "https://www.reachflowstate.ai", + "keywords": [ + "endurance", + "training", + "workouts", + "running", + "cycling", + "triathlon" + ], + "extensions": { + "com.openai": { + "interface": { + "displayName": "Flow State", + "shortDescription": "Plan endurance training", + "longDescription": "Flow State connects ChatGPT and Codex to an endurance athlete's private training calendar, completed Garmin and Strava activities, and privacy-safe Google Calendar availability. Native plugin extensions add a training-calendar sidebar app and a workout conversation panel on supported hosts; these interfaces are served by the authenticated MCP server, not by bundled skill files. Browse source-aware summaries and select owned workout details with the required grant. Review power and cadence, recovery and load, or plan and manage workouts, races and training plans using the existing tools. Bundled skills support training reviews and workout planning. Save coaching context or sync selected workouts to Garmin only when requested and separately connected. Data and surface availability depend on the athlete's account, granted permissions, integrations and host platform. Flow State does not diagnose injuries or medical conditions.", + "developerName": "Flow State Endurance", + "category": "Healthcare", + "capabilities": [ + "Browse native training calendar", + "Open workout conversation panel", + "Review training", + "Plan workouts", + "Analyze completed activities", + "Manage races and plans", + "Sync selected workouts to Garmin" + ], + "websiteURL": "https://www.reachflowstate.ai", + "supportURL": "https://www.reachflowstate.ai/support", + "privacyPolicyURL": "https://www.reachflowstate.ai/privacy", + "termsOfServiceURL": "https://www.reachflowstate.ai/terms", + "defaultPrompt": [ + "Review my recent training and explain what my recorded data supports.", + "Help me plan a workout around my training goals and available time.", + "Show my upcoming workouts and races." + ], + "composerIcon": "./assets/icon.webp", + "logo": "./assets/icon.webp" + }, + "review": { + "commerce": false, + "commerce_description": "The plugin's MCP tools do not sell products, process payments or execute financial transactions.", + "test_cases": { + "positive": [ + { + "description": "Read the demo athlete profile", + "prompt": "Using Flow State, show the athlete profile stored for this demo account, including training goals, experience level, preferred units, and available threshold settings.", + "expected_behavior": "Returns only the authenticated demo athlete's profile, including available goals, experience, unit, and threshold fields, clearly identifies fields that are not set, and records tool usage without editing the saved profile.", + "tools_triggered": "get_athlete_profile" + }, + { + "description": "Open the native training calendar for a fixed historical date range", + "prompt": "Using Flow State, open my native training-calendar sidebar for workouts dated from 2026-08-05 through 2026-08-11, including planned and completed workouts. Show compact summaries only and do not change any saved workouts.", + "expected_behavior": "Opens the native training-calendar UI backed by ui://flow-state/training-calendar/v1.html and returns compact summaries for only the authenticated demo athlete's workouts in the fixed date range. Each available date, title, sport, and planned/completed status is shown without changing saved workouts. If meta.has_more is true, continue through list_workouts with the returned next-page arguments and unchanged filters before claiming a complete range. An empty selected week is not represented as an empty workout archive. Host availability must be tested on the actual supported platform, not inferred from the tool result. Do not deduplicate separate rows solely because their titles match.", + "tools_triggered": "open_training_calendar" + }, + { + "description": "Inspect a known completed workout in the native conversation panel", + "prompt": "Using Flow State, open the native workout panel for 2026-08-05 through 2026-08-11, then show the completed workout dated 2026-08-05 with its summary and planned structure. Do not request laps, splits, or raw stream samples and do not change the workout.", + "expected_behavior": "Opens the native conversation workout panel backed by ui://flow-state/workout-panel/v1.html, locates the authenticated demo athlete's completed workout on the fixed date, and uses its returned owned ID for the unchanged health:read-gated get_workout_detail call. The bounded summary and available planned structure are displayed; unavailable optional data stays absent rather than invented, and the workout is not edited. If health:read is unavailable, show the safe summary and a clear permission/reconnect message instead of bypassing the grant. A manually opened thread entrypoint must also initialize with {} without a required workout ID; verify this separately in the native host worksheet.", + "tools_triggered": "open_workout_panel, get_workout_detail" + }, + { + "description": "Create, reuse, or enrich a fixed review event", + "prompt": "Using Flow State, add an A-priority 10K race on 2027-06-15 named OpenAI Review 10K.", + "expected_behavior": "Creates or reuses the authenticated demo athlete's matching private race event, filling missing details and raising its priority to A when needed, then returns the event without creating duplicates on repeat runs.", + "tools_triggered": "create_event" + }, + { + "description": "Read a bounded training snapshot", + "prompt": "Using Flow State, return a compact training snapshot for the demo account using a 90-day lookback. Include the athlete profile and bounded recent, upcoming, race, and coach-memory sections; clearly show empty sections rather than inventing data.", + "expected_behavior": "Returns a bounded snapshot for only the authenticated demo athlete, including the available profile and clearly labeled recent, upcoming, race, and coach-memory sections, with empty sections left empty and usage recorded without inventing data or editing training records. Membership in clock-relative sections depends on the execution date; the fixed historical fixture is not guaranteed to remain within the lookback.", + "tools_triggered": "get_training_snapshot" + } + ], + "negative": [ + { + "description": "Do not trigger for unrelated travel booking", + "prompt": "Find me the cheapest flights from Austin to Denver next weekend.", + "expected_behavior": "The app should not be invoked because travel search and booking are outside Flow State's supported workflows." + }, + { + "description": "Do not trigger for medical diagnosis", + "prompt": "Diagnose this sharp knee pain and tell me whether I have a stress fracture.", + "expected_behavior": "The app should not be invoked for medical diagnosis; the assistant should recommend appropriate professional care." + }, + { + "description": "Do not trigger for public posting or messaging", + "prompt": "Post this restaurant review to Instagram and text my friend about it.", + "expected_behavior": "The app should not be invoked because Flow State cannot post to social media or send messages." + } + ] + } + }, + "publication": { + "release_notes": "2.3.0 adds a native training-calendar sidebar and workout conversation panel with owner-scoped summaries, UTC default-week navigation and pagination. Completed workouts display recorded results separately from their planned workout steps. The training snapshot uses assistant-neutral action labels. Six provider-interacting tools now declare openWorldHint=true; the other annotation hints and OAuth scopes are unchanged. This package preserves the existing listing, Healthcare category, MCP endpoint and two supporting skills." + }, + "apps": "./.app.json" + } + } +}
Full technical diff · 8 changed fields
changed /files/.app.json/sha256
"3dae1250177436945467cbf2d0a6750dab8d19daa13674283f62900200c2cd23"
"db9076f5de21154c97538114aae471547d39a26c7640760abacbd5619b417817"
changed /files/.app.json/size
127
102
removed /files/.codex-plugin~1plugin.json
{
"sha256": "ce6e8272c962d779d629e26226905ea684c50c1f22dfca72df8a85700467efee",
"size": 1304
}Field is absent
added /files/assets~1icon.webp
Field was absent
{
"sha256": "6b178187726b9066b6a3310c5a771b7961bd1a7344b85f1a304f92633591b105",
"size": 598234
}added /files/mcp.json
Field was absent
{
"sha256": "5c6654e9a625370f7c0ff56210962e9b9677b8e37da7cde2340436d11cf28835",
"size": 206
}added /files/plugin.json
Field was absent
{
"sha256": "83ed8cffd885c4da7b2b9b694c6cd4d89efe73d10ef5c48178977399f27cd84a",
"size": 9054
}added /files/skills~1plan-workout~1SKILL.md
Field was absent
{
"sha256": "50c6905e40a580572b769ee1268d2428395ecc453b9e9a36127e2540dbbdc4e2",
"size": 3278
}added /files/skills~1review-training~1SKILL.md
Field was absent
{
"sha256": "580c650e89c6a305d3209a48793da35cb6be4bce3dbf391eef9e4bae27add5bf",
"size": 3087
}Full snapshot data
{
"files": {
".app.json": {
"sha256": "db9076f5de21154c97538114aae471547d39a26c7640760abacbd5619b417817",
"size": 102
},
"assets/icon.webp": {
"sha256": "6b178187726b9066b6a3310c5a771b7961bd1a7344b85f1a304f92633591b105",
"size": 598234
},
"mcp.json": {
"sha256": "5c6654e9a625370f7c0ff56210962e9b9677b8e37da7cde2340436d11cf28835",
"size": 206
},
"plugin.json": {
"sha256": "83ed8cffd885c4da7b2b9b694c6cd4d89efe73d10ef5c48178977399f27cd84a",
"size": 9054
},
"skills/plan-workout/SKILL.md": {
"sha256": "50c6905e40a580572b769ee1268d2428395ecc453b9e9a36127e2540dbbdc4e2",
"size": 3278
},
"skills/review-training/SKILL.md": {
"sha256": "580c650e89c6a305d3209a48793da35cb6be4bce3dbf391eef9e4bae27add5bf",
"size": 3087
}
}
}SHA-256 of public snapshot: a25f6dae5ae71dc67996157d340a48698952fa5f599bc6a0d0775684cd78cda0