Skip to content

@gotgenes/pi-permission-system does not work with OMP #1889

Description

@BUR4KBEY

Description

@gotgenes/pi-permission-system@9.0.0 appears in /plugins list as installed and enabled, but the extension never runs. No logs are created, no permission gates fire, and tool calls proceed without any check.

Steps to Reproduce

  1. Install the plugin via Bun in ~/.omp/plugins/:
{
  "dependencies": {
    "@gotgenes/pi-permission-system": "^9.0.0"
  }
}
  1. Run bun install then bun pm trust --all (the plugin depends on tree-sitter-bash which needs node-gyp-build — trust and run the postinstall script).

  2. Place the config at $PI_CODING_AGENT_DIR/extensions/pi-permission-system/config.json with this setup:

{
  "$schema": "https://raw.githubusercontent.com/gotgenes/pi-packages/refs/tags/pi-permission-system-v9.0.0/packages/pi-permission-system/schemas/permissions.schema.json",

  "debugLog": true,
  "permissionReviewLog": true,
  "yoloMode": false,
  "toolInputPreviewMaxLength": 400,
  "toolTextSummaryMaxLength": 120,
  "piInfrastructureReadPaths": [],

  "permission": {
    "*": "deny",
    "path": {
      "*": "deny",
      "*.env": "deny",
      "*.env.*": "deny",
      "*.env.example": "deny"
    },
    "read": "deny",
    "write": "deny",
    "edit": "deny",
    "bash": { "git status": "deny", "git *": "deny" },
    "mcp": { "mcp_status": "deny" },
    "skill": { "*": "deny" },
    "external_directory": "deny"
  }
}
  1. Open OMP in any directory, ask the agent to read a file.

  2. Check for logs:

ls $PI_CODING_AGENT_DIR/extensions/pi-permission-system/logs/

Expected Behavior

The read tool call should be blocked (or prompt via ask). With debugLog: true, log files should be created at startup even if no tool calls have been made yet.

Error Output

No error output anywhere — that's the problem. The extension fails silently. No crash, no warning in the OMP UI, no log files:


$ cat ~/.omp/agent/extensions/pi-permission-system/logs/pi-permission-system-debug.jsonl
cat: No such file or directory

$ cat ~/.pi/agent/extensions/pi-permission-system/logs/pi-permission-system-debug.jsonl
cat: No such file or directory


The agent reads files freely despite `"read": "deny"` in config.

Platform

Linux

omp version

15.7.2

Bun version

1.3.14

Provider

Custom (models.yml)

Area

Extensions / Plugins

Additional context

Environment:

  • PI_CODING_AGENT_DIR=/home/burak/.omp/agent (from ~/.omp/.env)
  • PI_CONFIG_DIR="/home/burak/.omp" (from ~/.omp/.env)
  • omp-plugins.lock.json shows the plugin as "enabled": true

Below what Claude found

The plugin's package.json uses a "pi" manifest key (not "omp"):

{
  "pi": { "extensions": ["./src/index.ts"] },
  "peerDependencies": {
    "@earendil-works/pi-coding-agent": ">=0.75.0",
    "@earendil-works/pi-tui": ">=0.75.0"
  }
}

Per src/extensibility/plugins/loader.ts, OMP does fall back to the "pi" key (pluginPkg.omp || pluginPkg.pi), so the manifest is found and the entry point ./src/index.ts should resolve.

Hypothesis: src/index.ts imports from @earendil-works/pi-coding-agent. OMP ships as @oh-my-pi/pi-coding-agent. If installLegacyPiSpecifierShim() doesn't remap this at module load time, the import fails and OMP discards the extension silently with no visible error.

Questions:

  1. Is installLegacyPiSpecifierShim() supposed to cover @earendil-works/pi-coding-agent@oh-my-pi/pi-coding-agent for plugins loaded via the "pi" manifest key?
  2. Where would a silent extension load failure be logged? Is there any way to get verbose plugin loading output?
  3. Is there a supported path for running Pi-native packages in OMP, or do they need to explicitly target @oh-my-pi/pi-coding-agent?

Related: #433 (pi-mono plugin compatibility).

Metadata

Metadata

Assignees

No one assigned

    Labels

    agentAgent runtime planning and orchestrationbugSomething isn't workingprio:p1High: significant impact, near-term fixtoolTool behavior and integrationstriaged

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions