role field on users via a boot migration, a storage-record org-ID backfill runs on startup, the installer renames Compose containers, and MCP / Actions are now controlled from Labs feature flags rather than environment variables.
Highlights
Personal access tokens for MCP and API access
Any org member can create a long-lived, scoped, revocable Personal Access Token under Workspace → Developer Settings, for example to connect an external agent to the PipesHub MCP server without borrowing a 24-hour session token or an admin-owned OAuth app that ignores per-user permissions. PATs are minted through the existing OAuth access-token machinery via an auto-created per-org system app, carry aphpat_ prefix so secret scanners recognize them, and default to a 30-day expiry (#2933 — @shekharkadyan). They are documented in the OpenAPI spec (#2940), and a follow-up fixed PATs failing on any route that forwards the auth header to a downstream service (#2971).
MCP server on the new agent loop, gated from Labs
The MCP server now runs its tools through the new agent loop (#2830 — @tushar1245). MCP is enabled from the Labs settings page rather than an environment variable, and code execution is now env-only viaPIPESHUB_ENABLE_CODE_EXECUTION (#3044). Actions and toolsets sit behind a new ENABLE_ACTIONS platform flag, enabled by default, so admins can hide them from the navigation, agent builder, and chat (#3045). A schema-loss bug that broke MCP tool arguments was fixed (#3078).
GitHub teams connector, HackerNews datasource, and a code parser
A GitHub teams connector lands, with the personal GitHub connector refactored to share its methods (#2989 — @darshangodase). A HackerNews API client and datasource were contributed (#3060 — @igennova). Source files are now parsed by a dedicated code parser (#3014 — @jatingaur18) and citations into code files were fixed (#3064).Multimodal embeddings, EPUB, AWS Bedrock, and pasted text
Multimodal embeddings and an EPUB parser were added (#2919 — @abhishekgml1991), with support for multimodal OpenAI-compatible embedding endpoints (#2952 — @TatshSiow) and image context-engineering changes so images reach the model with better surrounding context (#3084). AWS Bedrock joins the supported model providers (#3062 — @abhishekgml1991). In chat, long pasted text becomes an attachment chip with a preview dialog instead of flooding the input (#2889). Model access on an agent is now optional (#2960).Query service throughput, phase two
Building on the 0.6.0 overhaul, this round targets CPU in the query path: a read-through Redis cache of each user’s accessible record IDs, invalidated from the connector and indexing services; batched graph and storage lookups with a bounded process-wide HTTP session and Redis client; optional direct provider-SDK transports for Azure OpenAI, OpenAI, Anthropic, and Gemini behindPIPESHUB_AGENT_TRANSPORT; and a fix for the Node gateway building a public key on every JWT verify (#2963 — @shrikantNemiwal1). Measured at 4 workers / 32 users: steady-state throughput up from 37.8 to 43.0 req/min, p50 turn latency 34.4 s → 27.9 s, and Node gateway p50 2,738 ms → 573 ms. The accessible-records cache is on by default and can be disabled with PIPESHUB_ACCESSIBLE_RECORDS_CACHE=0; a loadtest harness ships alongside.
Admin role moves to the user record
Org admin privilege now lives onUser.role (admin | member) instead of membership in a legacy admin user group. A one-time boot migration promotes admin-group members, defaults everyone else to member, and soft-deletes the admin groups only if at least one admin remains. Access tokens carry the role, role changes force a logout, and last-admin demotion is blocked (#2939 — @Pranjal-wq, integration tests in #2981). Follow-ups let members invite other members (#3023), confirm role changes and show Groups as an Enterprise placeholder (#3005), and allow changing the role on a pending invite (#3056).
One-command Docker installer
A newinstall.sh at the repo root installs PipesHub with a single curl | bash or ./install.sh from a clone. It checks Docker, RAM, and disk, offers slim vs full and a choice of graph database, broker, and KV store, writes a .env with random secrets, pulls fresh app and sandbox images, and waits until the app is reachable on the host. First-run failures are clearer: crash-loop detection distinguishes exit 137 from 139, a stale COMPOSE_PROFILES is repaired, and indexing model loaders try the local cache first so air-gapped hosts don’t hang (#2634 — @shekharkadyan). The installer now tells you where to re-run it after a curl or clone (#3083), and CI tests a first-run install against Docker Hub images (#3076).
Stateless Docling processing and adaptive parsing
Docling document processing was separated into stateless services, with batched PDF processing for large documents and lightweight table enrichment when advanced enrichment is unavailable; legacy PDF-processing and block-creation endpoints were removed (#2950 — @kaushal1999). An adaptive parsing strategy picks the parse path per document (#2980 — @kaushalwaghela-art), vector-graphics-heavy PDFs no longer stall pdfplumber (#3007), and image-heavy PDF pages are routed to OCR (#3033 — @TatshSiow).Breaking changes & upgrade notes
- Admin role migration. On first boot, admin user-group members are promoted to
role=adminand the admin groups are soft-deleted; user JWTs without a valid role are rejected, so users re-login once. Admin checks now read the role from the database (#2939). - Org-ID backfill for storage records. A startup migration backfills
orgIdon storage documents in MongoDB (#3059 — @vishwjeet-pawar03). - Compose container names change. Existing Docker Compose installs recreate every container on the next
./install.sh; names become{project}-{service}-1(defaultpipeshub-ai-pipeshub-ai-1), sodocker exec pipeshub-aimust becomedocker compose -p pipeshub-ai exec -T pipeshub-ai …. Data volumes are unchanged (#2634). - Feature flags move.
ENABLE_MCPis now controlled only from Labs (thePIPESHUB_ENABLE_MCPenv override is gone); code execution is env-only viaPIPESHUB_ENABLE_CODE_EXECUTIONand its Labs toggle was removed (#3044). Actions/toolsets are gated by a newENABLE_ACTIONSplatform flag, default on (#3045). - New query-path defaults. The accessible-records cache is enabled by default (
PIPESHUB_ACCESSIBLE_RECORDS_CACHE); direct LLM transports (PIPESHUB_AGENT_TRANSPORT=direct) and signed-URL caching (PIPESHUB_SIGNED_URL_CACHE_SECONDS) are opt-in (#2963). - Docling API surface. Legacy PDF-processing and block-creation endpoints were removed from the Docling service (#2950).
- Embedding cleanups are now behind a feature flag (#3077 — @vishwjeet-pawar03).
Connectors
- GitHub — new teams connector; personal connector refactored onto shared methods (#2989 — @darshangodase).
- HackerNews — new API client and datasource (#3060 — @igennova).
- Jira Data Center / Confluence Data Center — placeholder handling and custom hierarchy support (#2878 — @darshangodase); spacing fix in action names (#3034).
- Linear — placeholder handling (#2880 — @darshangodase).
- Notion — reindexing fix and API resilience (#3022 — @shrikantNemiwal1); placeholder handling (#3085).
- Google Drive / Gmail — record streaming now iterates over all permissioned users instead of only the first (#2965 — @R0gue-one); Gmail shared-mailbox search links no longer always point at the synced owner’s account (#3011 — @aesp2008).
- GitLab — connector fixes (#3058 — @darshangodase).
- Web — S3 storage for the web connector fixed (#2983 — @kaushalwaghela-art).
- RSS — record preview no longer fails with “File URL not available” (#3079 — @uncleSlayer).
- Mail — conversation index on mail records (#2972 — @shrikantNemiwal1).
- A broad sync of accumulated changes across the Node.js API — Slack bot integration, configuration manager, mail templates, storage, and user management (#3028 — @vishwjeet-pawar03).
Agents & AI
- Structured JSON output is recovered from validation errors instead of failing the turn (#2948 — @TatshSiow).
- A prompt-injection guard was added to the sub-agent execution rules (#2987 — @abdul-5844).
- Toolset actions for the assistant agent were fixed (#2977 — @vishwjeet-pawar03); dedicated prompts for internal search and web search were removed in favour of the agent loop’s defaults (#3031).
- Reindexing embeddings was fixed (#3080 — @jatingaur18); Qdrant gains off-disk storage support (#2995 — @abhishekgml1991).
- The
webSearchschema description is now endpoint-neutral (#2968 — @uncleSlayer).
Fixes
- Chat mode selection fixed (#2966 — @vishwjeet-pawar03); streamed markdown tables and citations no longer flicker (#3082 — @tushar1245).
- The skills section was removed and the agent sidebar can now expand (#2978); model names display correctly in the UI (#3063); the search UI option was fixed (#3067 — @abhishekgml1991).
- A red dot now flags when default filters have been changed (#2974 — @darshangodase).
- Record preview skips
streamRecordwhen the record is not preview-renderable (#2979 — @Pranjal-wq). - Korean and Chinese (Taiwan and Singapore) UI languages added (#3051 — @rish664).
- A users-controller route had its HTTP method type corrected (#2986 — @vanshg685).
- A batch of OSS bug fixes (#3072 — @jatingaur18).
Performance & reliability
- Vector cleanup is no longer lost on record delete when the broker publish fails (#3013 — @aesp2008).
- Telemetry pushes no longer hit HTTP 413 (#3073 — @rish664).
- Noisy logs were dropped to debug level across services (#3066, #3070 — @abhishekgml1991), with tests updated to match (#3071 — @igennova).
Security & authentication
- An
x-is-adminheader injection path was closed; admin status now comes from the JWT role (#2985 — @Pranjal-wq). - The
uuidpackage was replaced withcrypto.randomUUID()in the Node.js backend (#3020 — @rish664). - Dependency bumps:
cryptography48 → 50,authlib,urllib3,idna,setuptools,langchain-classicin integration tests (#2898, #2268, #2253, #2346, #2755, #2271);ip-address/express-rate-limit,undici,fast-uri,engine.io,body-parserin the Node.js API (#2953, #2954, #2957, #2804, #2746);nanoid,tar/electron-builder/app-builder-lib/builder-util-runtime,nodemailer/monocart-reporterin the frontend (#2934, #2806, #2805, #2803, #2730).
Developer experience & infrastructure
AGENTS.mddocuments the repo for coding agents (#2984 — @shekharkadyan); Windows npm setup clarified (#2998 — @mdakram2002).- A unified system health-check script (#3048 — @Saneajayy) and a changelog CI job (#3061 — @rish664).
- OpenAPI / SDK generation: agent-capability default values (#2949), a duplicate
oauth2requirement that blocked SDK generation (#2956), review-comment descriptions (#2967), andusesOrgDefault/userOrgDefaultin the create-agent response (#2964, #3026) — all @uncleSlayer. - Integration tests: enterprise-search ITs fixed to cut LLM cost (#2924),
x-request-idpropagated (#2970), Notion added to the workflow (#3042 — @shrikantNemiwal1), timeout raised from 180 to 300 minutes (#3075 — @siddhantota). - Unit tests: RSS tests no longer make real network calls (#2982); test updates (#3050 — @jatingaur18).
- Cleanup: the
logsdirectory (#3019 — @rish664) and an unused test script (#3029 — @kaushalwaghela-art) were removed.
New contributors
- @kaushalwaghela-art made their first contribution in #2980
- @abdul-5844 made their first contribution in #2987
- @mdakram2002 made their first contribution in #2998
- @aesp2008 made their first contribution in #3011
- @Saneajayy made their first contribution in #3048
- @igennova made their first contribution in #3060
- @siddhantota made their first contribution in #3075
Full commit-level detail: GitHub release · Compare view