Skip to content
Open
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -308,7 +308,7 @@ node "${PLUGIN_ROOT}/scripts/dataverse-request.js" <envUrl> POST \
|---|---|---|
| `204` | Published | Continue |
| `400 / 0x80071141` "circular relationship" | Profile's association graph contains a cycle (e.g., `account => task => account`) | Parse the path from the error message, remove ONE association (prompt user at this point), re-attempt publish |
| `400 / 0x80071140` "no relationships are specified" for a Related-only table | A profile item has `recorddistributioncriteria=0` (Related rows only) but no `mobileofflineprofileitemassociation` rows targeting it. Without those, the runtime would sync zero rows. **Empirical 2026-05-24**: server enforces this at publish time — and the validation seems to look at associations published in an earlier `publishedon` snapshot, not the current uncommitted ones. So for profiles being **retrofitted** (existing publish + late association additions), publish can fail even after associations are added. | Parse the table name from the error message. Two recoveries: (a) read and execute `${CLAUDE_SKILL_DIR}/../add-table-to-offline-profile/SKILL.md` with `--table <tbl>` to add ALL relevant inbound associations, not just one; (b) read and execute `${CLAUDE_SKILL_DIR}/../edit-offline-profile/SKILL.md` with `--table <tbl> --scope 2 --me` to change scope away from Related-only. Prompt user to pick. |
| `400 / 0x80071140` "no relationships are specified" for a Related-only table | A profile item has `recorddistributioncriteria=0` (Related rows only) but no `mobileofflineprofileitemassociation` rows targeting it. Without those, the runtime would sync zero rows. **Empirical 2026-05-24**: server enforces this at publish time — and the validation seems to look at associations published in an earlier `publishedon` snapshot, not the current uncommitted ones. So for profiles being **retrofitted** (existing publish + late association additions), publish can fail even after associations are added. | Parse the table name from the error message. Two recoveries: (a) read and execute `${PLUGIN_ROOT}/skills/add-table-to-offline-profile/SKILL.md` with `--table <tbl>` to add ALL relevant inbound associations, not just one; (b) read and execute `${PLUGIN_ROOT}/skills/edit-offline-profile/SKILL.md` with `--table <tbl> --scope 2 --me` to change scope away from Related-only. Prompt user to pick. |
| `429` (rate limit) | Concurrent publish in progress on shared env | Back off via `dataverse-request.js` automatic retry; if still failing, fall through to the targeted-then-fallback pattern below |
| Client timeout, but server-side committed | Shared envs can take longer than `dataverse-request.js`'s 4-retry budget allows | Verify by re-GET — if `componentstate=0` AND `publishedon` is non-null + recent, treat as success |

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -90,10 +90,10 @@ default = update now):
On **Yes**, apply in this order (both are non-interactive when the target is explicit):

1. For each `missingTables[]` entry, read and execute
`${CLAUDE_SKILL_DIR}/../add-table-to-offline-profile/SKILL.md` with
`${PLUGIN_ROOT}/skills/add-table-to-offline-profile/SKILL.md` with
`--table <logicalName>` (or `--all-new` to add them all at once).
2. For each `tablesWithNewColumns[]` entry, read and execute
`${CLAUDE_SKILL_DIR}/../edit-offline-profile/SKILL.md` with
`${PLUGIN_ROOT}/skills/edit-offline-profile/SKILL.md` with
`--table <logicalName> --columns add:<comma-separated newColumns>`.

Re-run the delta check afterward; expect `in-sync`. Surface any remaining `delta` as a
Expand Down
6 changes: 3 additions & 3 deletions plugins/mobile-apps/skills/add-connector/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ allowed-tools: Read, Edit, Write, Grep, Glob, Bash, AskUserQuestion, Skill
model: sonnet
---

**📋 Shared instructions: [shared-instructions.md](${CLAUDE_SKILL_DIR}/../../shared/shared-instructions.md)** | **Connector reference: [connector-reference.md](${CLAUDE_SKILL_DIR}/../../shared/connector-reference.md)** — read both first.
**📋 Shared instructions: [shared-instructions.md](${PLUGIN_ROOT}/shared/shared-instructions.md)** | **Connector reference: [connector-reference.md](${PLUGIN_ROOT}/shared/connector-reference.md)** — read both first.

# Add Connector (Generic)

Expand All @@ -27,7 +27,7 @@ The native host runtime (`@microsoft/power-apps-native-host`) handles connector

### Step 1 — Check Memory Bank

Check for `memory-bank.md` per [shared-instructions.md](${CLAUDE_SKILL_DIR}/../../shared/shared-instructions.md).
Check for `memory-bank.md` per [shared-instructions.md](${PLUGIN_ROOT}/shared/shared-instructions.md).

Also confirm we're inside a Power Apps mobile app:

Expand Down Expand Up @@ -76,7 +76,7 @@ After `add-flow`, continue at Step 4 and inspect the generated service/model fil

### Step 3 — Add Connector

**First, get the connection ID or connection reference** (see [connector-reference.md](${CLAUDE_SKILL_DIR}/../../shared/connector-reference.md)):
**First, get the connection ID or connection reference** (see [connector-reference.md](${PLUGIN_ROOT}/shared/connector-reference.md)):

Run the `/list-connections` skill with the connector API ID (for example `shared_office365users`). Capture the exact `connectionId` from `create-connection`, or the `connectionRef` from `list-connection-references` if the caller is solution-aware. If creation cannot complete in the CLI, direct the user to create one using the environment-specific Connections URL — construct it from the active environment ID in context (from `power.config.json` `environmentId` or a prior step):
`https://make.powerapps.com/environments/<environment-id>/connections` → **+ New connection** → search for the connector → Create.
Expand Down
4 changes: 2 additions & 2 deletions plugins/mobile-apps/skills/add-datasource/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ allowed-tools: Read, Grep, Glob, AskUserQuestion, Skill
model: sonnet
---

**📋 Shared instructions: [shared-instructions.md](${CLAUDE_SKILL_DIR}/../../shared/shared-instructions.md)** — read first.
**📋 Shared instructions: [shared-instructions.md](${PLUGIN_ROOT}/shared/shared-instructions.md)** — read first.

# Add Data Source

Expand All @@ -16,7 +16,7 @@ Router skill that understands the user's goal and connects them to the right dat

### Check Memory Bank

Check for `memory-bank.md` per [shared-instructions.md](${CLAUDE_SKILL_DIR}/../../shared/shared-instructions.md).
Check for `memory-bank.md` per [shared-instructions.md](${PLUGIN_ROOT}/shared/shared-instructions.md).

### Understand the Goal

Expand Down
Loading
Loading