You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 8cc1bf8
Browse filesBrowse the repository at this point in the historyBrowse files
Copy file name to clipboardExpand all lines: CHANGELOG.md
+1Lines changed: 1 addition & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -103,6 +103,7 @@ Full release notes with details on each version: [GitHub Releases](https://githu
103
103
104
104
## 0.9.58 (2026-09-10)
105
105
106
+
- Feature: ship a native Oh My Pi guard package with `graphify omp install`; reuse the installed hook-guard policy for bounded tool-call denials and per-call guidance delivered with each tool result as a leading `<system-reminder source="graphify">` block, matching how Claude Code labels PreToolUse context, without building indexes.
106
107
- Fix: a call to a Python function defined nested inside another function now resolves to that inner definition per lexical scope, instead of leaking to a same-named function elsewhere; direct recursion is preserved as a self-loop (#3410, thanks @hopstreax).
107
108
- Fix: submodule imports inside a PEP 420 namespace package (a directory with no `__init__.py`) now resolve to the target module instead of being dropped (#3429, thanks @flaukowski).
108
109
- Fix: a bare-name import of a module sitting next to the importing file (a flat script dir with no package) now resolves to that sibling — matching CPython's `sys.path[0]` behavior — without over-resolving a genuine third-party name (#3430, thanks @hopstreax).
| Oh My Pi (native guard) |`graphify omp install`|
308
310
| Devin CLI |`graphify devin install`|
309
311
| Google Antigravity |`graphify antigravity install`|
310
312
@@ -323,7 +325,55 @@ This writes a small config file that tells your assistant to consult the knowled
323
325
324
326
**Cursor** writes `.cursor/rules/graphify.mdc` with `alwaysApply: true`, so Cursor includes it in every conversation automatically, no hook needed.
325
327
326
-
To remove graphify from all platforms at once: `graphify uninstall` (add `--purge` to also delete `graphify-out/`). Or use the per-platform command (e.g. `graphify claude uninstall`).
328
+
### Oh My Pi (OMP) native guard
329
+
330
+
Install Graphify into a persistent environment with `uv tool install graphifyy` or
331
+
`pipx install graphifyy`, and install OMP separately. Then run:
332
+
333
+
```bash
334
+
graphify omp install
335
+
```
336
+
337
+
This delegates to OMP's supported `omp plugin install <local-package-directory>`
338
+
route. The Python wheel and source distribution contain `graphify/omp/package.json`
339
+
with explicit `omp.extensions` and its TypeScript entry point; OMP links that
340
+
directory and discovers the extension. No npm adapter package, shell hook, Pi API
341
+
shim, or hand-edited OMP settings are required. `graphify omp path` prints the same
342
+
directory for manual `omp plugin install` or one-session `omp -e` use. Restart OMP
343
+
after installing/upgrading, and rerun the installer if the Python environment
344
+
moves. Do not link from an ephemeral `uvx` environment.
345
+
346
+
Before native `read`, `glob`, `grep`, and search-style `bash` calls, the extension
347
+
runs the installed `graphify hook-guard read|search` CLI. The existing Python
348
+
policy owns fresh/stale graph decisions and strict-mode denials: start OMP with
349
+
`GRAPHIFY_HOOK_STRICT=1` to enable its once-per-session indexed-read block.
350
+
Denials become OMP `block`/`reason`; each qualifying call carries its own
351
+
guidance, appended to that call's persisted tool result (Claude
352
+
`PreToolUse` additionalContext parity), and pending deliveries are cleared for
353
+
each new user run and session navigation. In-flight hooks
354
+
are cancelled on these boundaries. No graph is created or updated automatically.
355
+
The guard package intentionally declares no skills; the existing cross-framework
356
+
skill remains available separately through `graphify agents install`.
357
+
358
+
Only local filesystem targets are inspected, using OMP's selector/path helpers.
359
+
URLs and internal resources are excluded. Hooks require an installed `graphify`
360
+
on an absolute PATH entry outside the project (including outside a project-local
361
+
virtualenv); there is no project Python or command fallback. Each native tool call
362
+
has a 256 KiB JSON-input cap, a 64 KiB output cap and a two-second subprocess budget
363
+
with forced termination. Missing commands, invalid output and failures fail open.
364
+
365
+
The extension checks `ctx.isProjectTrusted()` before execution and context
366
+
injection, but **current OMP exposes this compatibility method as always true**:
367
+
it is not an enforced trust sandbox. Enable this integration only in projects you
368
+
trust. The lifecycle contract is based on OMP integration commit
369
+
`6aef0e8ad51b3bc5ea7a5f2a255c3d48e4c5af72`; the `18.1.17` version string alone
370
+
does not establish those lifecycle fixes.
371
+
372
+
Remove this host-managed link with `omp plugin uninstall graphify-omp`**before**
373
+
uninstalling the Python package. `graphify uninstall` handles Graphify-managed
374
+
platform files, not OMP's plugin registry.
375
+
376
+
To remove Graphify-managed platform files at once: `graphify uninstall` (add `--purge` to also delete `graphify-out/`). Or use the per-platform command (e.g. `graphify claude uninstall`). OMP links are removed separately as described above.
0 commit comments