Skip to content

Releases

piu v0.1.45

Choose a tag to compare

@github-actions github-actions released this 29 Mar 15:42

New Features

  • MCP Hook Management — Create, list, update, and delete response hooks via MCP tools (create_hook, list_hooks, get_hook, update_hook, delete_hook). Skills can now set up complete auth token flows programmatically: create a login request, configure a hook to extract the token, execute login, and the token is captured into variables automatically.
  • update_variable MCP tool — Update a single environment variable by key directly via MCP.
  • set_env_variables returns full records — Now returns stable variable IDs and full metadata after upsert, enabling downstream hook targeting without a separate lookup.
  • get_request includes hooks_associated — Requests now surface any variable-linked hooks in their detail response.

Bug Fixes

  • Hook execution in MCP — execute_request now fires response hooks via process_hooks_headless(), so hooks trigger when requests are sent via MCP tools (not just the desktop UI).
  • Variable upsert preserves IDs — set_env_variables uses upsert-by-key semantics, preserving variable IDs and hook target foreign keys across updates (no more orphaned hook targets on re-sync).
  • Transactional hook writes — create_hook and update_hook are now wrapped in transactions to prevent partial state on failure.
  • Direct hook lookup — Added get_hook_by_id query for reliable single-hook retrieval.

Maintenance

  • Updated dependencies (bun.lock, Cargo.lock)
  • Updated piu-mcp skill to document all 57 tools including new Hooks and Variables sections
  • Updated piu-hyperf-sync skill with hook setup step in Phase 4 and match_paths on variables

piu v0.1.44

Choose a tag to compare

@github-actions github-actions released this 27 Mar 17:46

What's Changed

Bug Fixes

  • Fix serde camelCase rename on SyncConnectInput and SyncCloneInput structs — sync clone operations now correctly deserialize camelCase JSON payloads from the frontend

Maintenance

  • Bump version to 0.1.44

Full Changelog: v0.1.43...v0.1.44

piu v0.1.43

Choose a tag to compare

@github-actions github-actions released this 26 Mar 21:52

What's Changed

New Features

  • Sync Clone — The Connect tab now has a "Clone from Host" button when no local project is selected. One click performs handshake → duplicate detection → project creation → full sync in a single step. No pre-existing local project required. Duplicate clone detection prevents importing the same remote project twice.

Bug Fixes

  • Fixed a pre-existing bug where upsert_request did not remap project_id to the local project on sync (collections, environments, and data models already did this correctly).

Maintenance

  • Updated README: documented Sync Clone, added piu-hyperf-sync skill to project structure and installation instructions.

Full Changelog: v0.1.42...v0.1.43

piu v0.1.42

Choose a tag to compare

@github-actions github-actions released this 26 Mar 20:18

What's Changed

New Features

  • Monaco JSON editor — JSON body editing now uses Monaco (VS Code's editor engine) in Raw mode with syntax highlighting and vs-dark theme; switch to Form mode for a structured field-by-field editor driven by the linked Data Model, with recursive object/array support and color-coded type badges
  • Form-based body editor — New BodyFormEditor renders model fields as typed rows (string, number, boolean, null, object, array) with inline recursive editing; custom keys not in the model appear below model fields
  • MCP server auto-start — The MCP bridge server starts automatically on port 3333 at app launch so Claude and other MCP clients connect without manual invocation
  • Hyperf backend sync skill — New 7-phase Claude Code skill for syncing Hyperf PHP framework routes into PIU, including a dedicated describe:routes CLI output parser

Bug Fixes

  • OpenAPI spec generation — Query params are now skipped for POST/PUT/PATCH requests when a Data Model is linked (model fields produce the requestBody instead); linked models now always generate a requestBody even when body type is none
  • TryItPanel — requestModelId is now wired into the body editor in the API Docs Try It panel; auto-switches to the Body tab for POST/PUT/PATCH when a model is linked
  • Autocorrect on API inputs — Disabled autoCapitalize, autoCorrect, and spellCheck on all header, param, and auth credential fields to prevent macOS/iOS from mangling API values
  • Project deletion crash — Fixed a Turso stack overflow on project deletion by disabling FK cascades that caused recursive triggers

Maintenance

  • Bump tauri-plugin-connector to 0.7 and add connector:default capability
  • Bump actions/checkout to v6 and actions/upload-artifact to v7
  • Apply cargo fmt

Full Changelog: v0.1.41...v0.1.42

piu v0.1.41

Choose a tag to compare

@github-actions github-actions released this 25 Mar 15:03

What's Changed

New Features

  • Targeted Variables — Environment variables now carry match_paths (glob patterns), target_location (header, URL param, URL path, body, auth bearer/basic/API key), priority, and expires_at TTL. Variables are injected only when the request path matches, with priority-based conflict resolution replacing the legacy simple interpolation pass
  • Response Hooks — Define hooks that automatically extract values from API responses (body via JSONPath, or response headers) and write them into environment variables. Supports a configurable value template, TTL (sets expires_at on the captured variable), and array extraction strategies (first, last, pick)
  • Array Picker — When a hook's JSONPath selector returns an array, a modal picker lets you choose which element to capture
  • Hook Refresh button — Each hook in the Hooks editor has a Refresh button that executes the source request on demand and shows a toast with the captured value and number of variables updated
  • Execution feedback events — hook-captured and variable-expired backend events now surface as toasts in the UI. A variable-expired warning fires when a stale (TTL-expired) variable is used in a request
  • TryItPanel editor tabs — The API Docs Try It panel now loads the linked request config and exposes Body, Params, Headers, and Auth editor tabs. Saves config changes before executing. Adds a color-coded method badge next to the URL

Bug Fixes

  • api_path glob matching — Fixed incorrect api_path computation that prepended the host to the path, causing all match_paths patterns to fail. The path is now stripped of its leading slash only, not the host prefix
  • ProjectSettingsModal variable editor — Added Match Paths, Target, Priority, and Expires columns; added Hooks tab; wired onVariablesRefreshed callback so the variable editor syncs after a hook fires
  • TypeScript compilation — Excluded skills/ and .agents/ directories from the tsconfig.json compilation scope

Improvements

  • Rebuilt Claude Code skills with Bun runtime; added piu-mcp toolkit skill
  • Added serde_json_path and globset Rust dependencies for JSONPath extraction and glob path matching
  • Smart DB migration for new env_variables columns and new env_hooks / env_hook_targets tables
  • Single-flight refresh gate prevents concurrent auto-refresh executions for the same hook

Full Changelog: v0.1.40...v0.1.41

piu v0.1.40

Choose a tag to compare

@github-actions github-actions released this 23 Mar 21:25

v0.1.40

Bug Fixes

  • Fix Homebrew cask SHA256 hash

Maintenance

  • Add auto-push release pipeline

Full Changelog: v0.1.39...v0.1.40

piu v0.1.39

Choose a tag to compare

@github-actions github-actions released this 23 Mar 19:18

What's Changed

New: Sigma.js v3 Graph Engine

Complete rendering engine swap from React Three Fiber to Sigma.js v3 — the graph is now faster, cleaner, and built on a proven WebGL graph library.

  • Sigma.js v3 WebGL rendering with node/edge reducer architecture (replaces Three.js InstancedMesh + custom GLSL shaders)
  • Curved Bezier edges via @sigma/edge-curve for visual clarity
  • Community coloring — clusters identified by Louvain detection are color-coded (replaces metaball SDF blobs)
  • Overview/focus cluster navigation — click a cluster to zoom in, Escape to zoom out
  • Animation system — pulse (search), ripple (blast radius), glow (query highlights) with sine-wave oscillation
  • Selection highlighting — click a node to highlight it + neighbors, dim the rest
  • Path tracing — Shift+click two nodes to find and highlight the shortest path
  • ForceAtlas2 layout with position caching to SQLite (same algorithm, now with proper random seeding)
  • All keyboard shortcuts preserved — Cmd+F search, 1/2/3 type filters, T theme toggle, Alt+arrows history

Bug Fixes

  • Graceful FTS5 fallback — search now falls back to LIKE queries when the FTS5 module is unavailable in bundled libSQL
  • Async runtime fix — use tauri::async_runtime::spawn instead of tokio::spawn for startup tasks

Removed

  • Bloom post-processing (Sigma has no built-in post-processing)
  • Canvas 2D minimap (will rebuild on Sigma if needed)
  • Metaball SDF cluster blobs (replaced by community coloring)

Full Changelog: v0.1.38...v0.1.39

piu v0.1.38

Choose a tag to compare

@github-actions github-actions released this 22 Mar 18:46

What's Changed

New Features

  • Graph animation system — ported from GitNexus: three animation types (pulse, ripple, glow) with per-frame sine-wave oscillation on node size and color. Animations run in the R3F render loop via useFrame without triggering React re-renders.
  • 3-layer highlight priority — blast radius (red, 1.8x) > query highlight (cyan, 1.6x) > selection + neighbors (bright, 1.3x) > dimmed (0.5x, faded toward background). Non-active nodes dim automatically when any highlight is engaged.
  • Selection-aware edges — connected edges brighten and thicken (4x width), unconnected edges fade to near-invisible. Blast/highlight edges colored red/cyan respectively.
  • Per-node coloring — graph nodes now render with their individual stored color instead of a uniform theme color, enabling richer visual differentiation.

Bug Fixes

  • Fix Homebrew cask template to use caveats instead of sudo postflight script

Maintenance

  • Add graphColorUtils.ts with dimColor/brightenColor helpers (theme-aware background mixing)

Full Changelog: v0.1.37...v0.1.38

piu v0.1.36

Choose a tag to compare

@github-actions github-actions released this 22 Mar 15:16

What's Changed

New Features

  • LLM-friendly search & knowledge graph API — PIU now has a full-text search engine (FTS5) that indexes all entity types (projects, collections, requests, models, environments) with BM25 ranking. Every entity gets an auto-generated natural-language description, making the entire API surface self-describing for both humans and LLMs.

    New MCP tools:

    • search_entities — unified keyword search across all entity types (replaces search_requests)
    • find_related_entities — bidirectional graph traversal to discover related entities (Obsidian-style backlinks)
    • get_entity_detail — full entity detail with backlinks and auto-generated description
    • get_api_surface — structured API endpoint summary grouped by collection
    • get_project_summary — natural-language project overview with stats and method distribution

    New Tauri commands for frontend: search_entities, find_related_entities

Bug Fixes

  • Fixed sync.rs to persist parent_model_id and mixin_model_ids when syncing models from remote sources
  • Fixed Ubuntu CI builds by upgrading to Ubuntu 24.04 and adding libpipewire-0.3-dev + libgbm-dev dependencies

Improvements

  • Refactored graph relationship extraction into shared entity_graph module (DRY with visualization pipeline)
  • Added debounced rebuild of search indexes (500ms coalesce) triggered by data-changed events
  • Search indexes rebuilt automatically on app startup for data integrity

Full Changelog: v0.1.32...v0.1.36

piu v0.1.33

Choose a tag to compare

@github-actions github-actions released this 22 Mar 14:18

What's Changed

New Features

  • LLM-friendly search & knowledge graph API — PIU now has a full-text search engine (FTS5) that indexes all entity types (projects, collections, requests, models, environments) with BM25 ranking. Every entity gets an auto-generated natural-language description, making the entire API surface self-describing for both humans and LLMs.

    New MCP tools:

    • search_entities — unified keyword search across all entity types (replaces search_requests)
    • find_related_entities — bidirectional graph traversal to discover related entities (Obsidian-style backlinks)
    • get_entity_detail — full entity detail with backlinks and auto-generated description
    • get_api_surface — structured API endpoint summary grouped by collection
    • get_project_summary — natural-language project overview with stats and method distribution

    New Tauri commands for frontend: search_entities, find_related_entities

Bug Fixes

  • Fixed sync.rs to persist parent_model_id and mixin_model_ids when syncing models from remote sources

Improvements

  • Refactored graph relationship extraction into shared entity_graph module (DRY with visualization pipeline)
  • Added debounced rebuild of search indexes (500ms coalesce) triggered by data-changed events
  • Search indexes rebuilt automatically on app startup for data integrity

Full Changelog: v0.1.32...v0.1.33