* Add vitest test suite for runInIsolate in node-runner
Adds 9 tests covering AutomationEventInput data flow, PlaneClient
injection, Functions library, execution timeout, domain-restricted
fetch, ENV exposure, and missing-main error handling.
Co-Authored-By: Claude Opus 4.6 <[email protected]>
* Add TypeScript parsing support and replace console with structured logger
- Use acorn-typescript plugin for AST-based code validation and function
detection so user scripts can include TypeScript syntax
- Build user code as index.ts instead of index.js via esbuild
- Replace all console.log/error/warn calls with @plane/logger
- Add logger middleware to Express server
- Add dd-trace initialization via tracer module
Co-Authored-By: Claude Opus 4.6 <[email protected]>
* fix: split tsconfig into build and base configs for test compatibility
Move rootDir/outDir into tsconfig.build.json so the base tsconfig.json
can include tests/**/* for ESLint and IDE support without breaking tsc.
Co-Authored-By: Claude Opus 4.6 <[email protected]>
* remove environment variables from scripts
* update tsconfig for tests
* fix bug in scripts UI to render code properly
* add 6 system functions and inject Plane/workspaceSlug into function factory
Expand buildFunctionsLibrary to pass Plane client and workspaceSlug into
the function factory so system functions can call the Plane SDK. Populate
the system_functions fixture with httpRequest, postToSlack, getChildren,
getSiblings, addComment, and addLabel.
Co-Authored-By: Claude Opus 4.6 <[email protected]>
* fix: add created_at/updated_at to system functions fixture
Django's auto_now_add/auto_now fields are not auto-populated when
loading fixtures via loaddata, causing a NOT NULL constraint violation.
Co-Authored-By: Claude Opus 4.6 <[email protected]>
* add parent_id filter and use advancedSearch in system functions
Add parent_id filter to ExtendedIssueFilterSet so work items can be
queried by parent. Update getChildren and getSiblings system functions
to use Plane.workItems.advancedSearch with parent_id filter instead of
the list endpoint which does not support parent filtering.
Co-Authored-By: Claude Opus 4.6 <[email protected]>
* Revert "feat: add pagination support to WorkItemAdvancedSearchEndpoint"
This reverts commit 9820a1d16e571c14539c7a7139aa269df9baece4.
* add system script: mark parent as done if all children are done
Populates system_scripts fixture with a script that triggers when a
work item enters a completed state group, checks all siblings, and
updates the parent to completed if every child is done.
Co-Authored-By: Claude Opus 4.6 <[email protected]>
* Add script - Create linked work item in another project on state change
* fix: form data + title width
* fix: implemented full screen editor + handled is_system
* fix: handled is_system
* disable error highlighting in code editor
* feat: add redirect url support for runner
- add is_internal to all the internal plane apps
* invalidate app credentials in cache when app got updated
* fix: pass workspace context for system script execution in automations
System scripts have workspace=None, so accessing script.workspace.id
would fail. Now the automation passes its own workspace_id/workspace_slug
and script_executor falls back to caller-provided values.
Co-Authored-By: Claude Opus 4.6 <[email protected]>
* refactor: extract shared TypeScript parser into ts-parser module
Move duplicated acorn + tsPlugin initialization from code-validator.ts
and server.ts into a single shared ts-parser.ts module.
Co-Authored-By: Claude Opus 4.6 <[email protected]>
* fix: type errors for acorn node
---------
Co-authored-by: Claude Opus 4.6 <[email protected]>
Co-authored-by: gakshita <[email protected]>