Files
realmroot[bot] 96fdd70d2c feat(api)!: redesign task resource operations (#265)
* feat(api)!: redesign task resource operations

Publish the complete resource-oriented OpenAPI contract, enforce scope-based authorization at the HTTP boundary, and replace lifecycle command routes with Task PATCH and nested Claim/Event resources.

Add server-side Task CAS, migration coverage, updated Agent Skills, and browser/API regression tests.

BREAKING CHANGE: remove the legacy task lifecycle endpoints and move bounded waits to /tasks/{taskId}/events.

* refactor(tasks)!: make claims create-only

Remove Task Claim retrieval and deletion routes, the release scope, live deletion logic, and release workflow guidance.

Keep historical release records readable for migration and audit compatibility.

BREAKING CHANGE: remove GET and DELETE /tasks/{taskId}/claims/{claimId} and the task:release scope.

* test(ci): align actor and projection contracts

Cover machine and service Task Action writes and update Agent detail fixtures to the canonical assignedTo query and paged lowerCamelCase response.

* fix(api): preserve merge patch fields and consume browser pagination

* test(ui): include terminal pagination in agent task fixture

---------

Co-authored-by: jarvis <jarvis@agents.realmroot.dev>
2026-09-05 02:40:42 +00:00

39 lines
1.2 KiB
TypeScript

import { execSync } from "node:child_process";
import path from "node:path";
import { cloudflare } from "@cloudflare/vite-plugin";
import tailwindcss from "@tailwindcss/vite";
import react from "@vitejs/plugin-react";
import { defineConfig } from "vite";
const port = Number(process.env.VITE_DEV_PORT) || 6265;
const origin = `http://localhost:${port}`;
const gitSha = execSync("git rev-parse --short HEAD").toString().trim();
export default defineConfig({
plugins: [
react(),
tailwindcss(),
cloudflare({
configPath: process.env.AK_E2E_WRANGLER_CONFIG ?? "./wrangler.toml",
persistState: { path: process.env.AK_E2E_STATE_DIR ?? path.resolve(__dirname, ".wrangler/state") },
config: (config) => ({
vars: {
...config.vars,
AK_PUBLIC_ORIGIN: origin,
ALLOWED_HOSTS: `localhost:${port}`,
},
}),
}),
],
server: { port, allowedHosts: ["localhost"] },
define: { __APP_VERSION__: JSON.stringify(gitSha) },
resolve: {
dedupe: ["react", "react-dom", "react/jsx-runtime", "react/jsx-dev-runtime"],
alias: {
"@": path.resolve(__dirname, "./src"),
"@shared": path.resolve(__dirname, "./shared"),
"@server": path.resolve(__dirname, "./server"),
},
},
});