Release 1.9.0 · Finer org permissions, steadier team money flows, and safer experimental AI plumbing
v1.9.0 · 2026-04-14
Finer org permissions, steadier team money flows, and safer experimental AI plumbing
This release tightens how organizations reason about member access, improves contributor and invoicing workflows for leads and finance admins, and hardens how the product talks to the experimental AI chat runtime when Google identity sits in the path. Control-plane automations fail in a controlled way more often instead of wedging a run.
Org access and presets (customer-visible behavior)
- Members can carry a scope overlay (extra grants and revokes on top of their role). Effective access remains the intersection of role, overlay, and plan limits—overlays cannot escalate beyond what an administrator already has.
- Permission presets help teams reuse common grant bundles when onboarding or adjusting access, with system templates and org-owned presets.
- The member profile experience can surface access scope context (baseline vs effective, and where a plan blocks a path) so admins spend less time guessing why a page is hidden.
Team leads, contributors, and invoicing (customer-visible behavior)
- Team leader flows gain clearer selection and configuration surfaces, aligned with bonus pools and settlement logic so leader compensation can be reasoned about consistently alongside invoices.
- Contributor expansion moves work tracking toward work units (manual jobs and structured units) with updated tables, navigation, and org-facing tools—replacing the older creative work-log shape for day-to-day operations.
- Invoice runs, invoices, and bonuses pick up UI and workflow refinements that reduce confusion when reviewing totals, schedules, and exceptions across large teams.
Research runs and AI-assisted workflows (ongoing development; access remains policy-gated)
- Research runs gain stronger suggestion and override guidance in the product, with supporting orchestration and schema work so teams can iterate on research outputs with clearer next steps.
- When the dedicated chat runtime is enabled, browsers may call it through the same Next.js origin so the server can attach a Google ID token for Cloud Run IAM, while the stream JWT travels on a separate header. This keeps long-lived streaming compatible with locked-down service-to-service auth without changing what end users click.
- Configuration normalizes base URLs so relative proxy paths like
/api/chat-servicebehave consistently in dev and production. - Internal documentation now describes the proxy hop explicitly for operators rolling out the three-service split.
Control plane, signals, and integrations (ongoing product development)
- Meta graph batch enqueue now marks steps failed with a structured API-style payload when prerequisites are missing (for example no target entity id or no access token on the step), matching failure shapes used elsewhere instead of throwing inside the runner loop.
- The signal builder and in-app signal testing flow receive substantial UX and state-handling improvements—including richer previews—so teams can iterate on conditions with less friction.
- Entity table affordances (toolbar, row actions, resolved columns) and assorted dashboard polish reduce dead ends and make dense admin screens easier to scan.
Broader “experimental” program (context, not an exhaustive feature list)
- Work continues across landing-page authoring, media and video intelligence, and AI-assisted workflows under explicit experimental and access policies. This commit is one slice of that roadmap: it improves the permission model, contributor and invoicing surfaces, the AI transport story, and automation reliability so those programs can scale without surprise escalations or stuck executions.
If you rely on self-hosted or custom chat-service deployments, confirm CHAT_SERVICE_UPSTREAM_URL and
CORS allow the new stream header name documented in architecture notes before rolling forward.