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
Copy file name to clipboardExpand all lines: .changelog/NEXT.md
+4Lines changed: 4 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -99,6 +99,10 @@
99
99
100
100
- **Creative Director now evaluates rendered scenes on a local vision model instead of Opus.** Judging each freshly-rendered scene ("does it match the style spec and deliver the intent?") used to spawn a full Chief-of-Staff coding agent that landed on the active provider's *heavy* model — Opus for a Claude provider — purely to look at a couple of thumbnails and record a verdict. That decision now runs server-side through PortOS's vision-API path: it attaches the sampled frames to a **local, vision-capable model** (Ollama/LM Studio VLM) and parses a structured accept/retry/fail verdict, applying the exact same scene transitions (accept → add the clip to the collection; miss with retries left → re-render with a refined prompt; miss when exhausted → drop the scene). Pick the model under **Settings → AI Assignments → "Scene evaluation model"**; leave it blank to auto-select an installed local vision model. Installs with no local vision model configured transparently fall back to the original coding-agent path, so nothing breaks — but if you have a VLM installed, scene evaluation is now local and free. (`server/services/creativeDirector/sceneEvaluator.js`)
101
101
102
+
## Integrations
103
+
104
+
-**JIRA instances now support Jira Cloud (`*.atlassian.net`), not just Server / Data Center.** The JIRA client authenticated every instance with `Authorization: Bearer <token>` — correct for a Server/DC Personal Access Token, but Jira Cloud rejects that: a Cloud personal API token must be sent as HTTP Basic (`base64("email:token")`). PortOS now picks the scheme per instance by host — a `*.atlassian.net` base URL authenticates as Basic using the instance's email + API token (both already stored and required by the instance form), and any other host keeps the Bearer PAT — so Cloud and Server instances work side by side with no new fields or migration. Create a Cloud API token at id.atlassian.com → Security → API tokens and paste it into the instance's token field. (`server/services/jira.js`)
105
+
102
106
## Internal
103
107
104
108
- **[issue-2183] Creative Tool Registry + gated dispatch (CDO Phase 1).** Foundation for the Creative Director orchestrator (epic #2182): a single registry (`server/services/creative/toolRegistry.js` + per-domain modules under `creative/tools/`) of creative-suite tools an orchestrating agent can call — universe, story builder, writers room, pipeline, media, catalog — each a thin conductor wrapper over an existing service entry point (`createUniverse`, `generateStep`, `startSeriesAutopilot`, `enqueueJob`, …), never a re-implementation. All orchestrator calls flow through one governed chokepoint, `dispatchCreativeTool(name, args, ctx)`, which validates args (Zod), enforces a new `creative` autonomy mode, charges the daily action budget for `llm`/`render` tools, and appends a `{tool, argsDigest, outcome, timing}` entry to the calling project's run ledger. The `creative` autonomy domain (`server/lib/domainAutonomy.js` `getCreativeAutonomyMode`) is kept separate from the four core domains and defaults to mirror the `cos` mode, so existing autopilot users get consistent behavior with no migration, while an explicit `domainAutonomy.creative` value can override it later. Direct user actions through the existing routes are unchanged — the gate lives only on the orchestrator path. No user-facing surface yet; the directive composer and plan board arrive in later CDO phases.
Copy file name to clipboardExpand all lines: .changelog/v0.14.21.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -63,8 +63,8 @@ This release adds Ghostty terminal theme integration and a project update workfl
63
63
-**`scripts/jira-create-ticket.js` CLI** — standalone script that imports JIRA services directly, reads app config, auto-resolves the active sprint, and creates tickets with all fields (project, assignee, sprint, epic, story points, labels) in one call; used by the `/ticket` Claude Code skill
64
64
65
65
### JIRA Epic Search & Token Expiry Detection
66
-
-**`GET /api/jira/instances/:id/projects/:key/epics?q=`** — new endpoint to search epics by name in a project; the CLI ticket creator uses this to resolve fuzzy epic names (e.g., "grace support") to JIRA keys
67
-
-**`--epic` accepts search terms** — the CLI script now accepts either a JIRA key (`CONTECH-1553`) or a name search (`"grace support"`) and auto-resolves to the best-matching epic
66
+
-**`GET /api/jira/instances/:id/projects/:key/epics?q=`** — new endpoint to search epics by name in a project; the CLI ticket creator uses this to resolve fuzzy epic names (e.g., "payments platform") to JIRA keys
67
+
-**`--epic` accepts search terms** — the CLI script now accepts either a JIRA key (`PROJ-1553`) or a name search (`"payments platform"`) and auto-resolves to the best-matching epic
68
68
-**Token expiry detection** — JIRA client interceptor detects when the API returns an HTML login page instead of JSON and throws a clear "token expired" error instead of crashing
0 commit comments