@open-mercato/cezar 0.9.1-pr677.764 → 0.9.1-pr679.778

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (30) hide show
  1. package/README.md +2 -0
  2. package/dist/server/server.d.ts +6 -0
  3. package/dist/server/server.js +28 -2
  4. package/dist/server/server.js.map +1 -1
  5. package/dist/workflows/run.d.ts +10 -0
  6. package/dist/workflows/run.js +34 -1
  7. package/dist/workflows/run.js.map +1 -1
  8. package/dist/workspace/config.d.ts +34 -0
  9. package/dist/workspace/config.js +17 -0
  10. package/dist/workspace/config.js.map +1 -1
  11. package/package.json +1 -1
  12. package/web/dist/assets/{compare-variants-DEgArSpw.js → compare-variants-DCTTnBeF.js} +1 -1
  13. package/web/dist/assets/{diff-CjsWdrQH.js → diff-DNQz2qdR.js} +2 -2
  14. package/web/dist/assets/{diff-view-BfWjVMbn.js → diff-view-CaXmMSjP.js} +1 -1
  15. package/web/dist/assets/{git-toolbar-BfW_QDRA.js → git-toolbar-CjEz0BRp.js} +1 -1
  16. package/web/dist/assets/{github-82rsgzDv.js → github-DlQ7cWIi.js} +1 -1
  17. package/web/dist/assets/{index-Lz_3un5h.css → index-C2MYcg0H.css} +1 -1
  18. package/web/dist/assets/index-CRNCxC9v.js +30 -0
  19. package/web/dist/assets/{repo-git-Dajwu2K2.js → repo-git-BCjA2j3h.js} +1 -1
  20. package/web/dist/assets/{run-diff-czaercXH.js → run-diff-BNao14SJ.js} +1 -1
  21. package/web/dist/assets/{run-header-B7_Bg9sp.js → run-header-CeiuhUsC.js} +1 -1
  22. package/web/dist/assets/{skills-CStqqwJQ.js → skills-DPxXdYdA.js} +1 -1
  23. package/web/dist/assets/{task-changes-BeyFLJJu.js → task-changes-D1UJqjlR.js} +1 -1
  24. package/web/dist/assets/{task-commits-BPMBAPPJ.js → task-commits-BAC9WIzW.js} +1 -1
  25. package/web/dist/assets/{task-files-D0sR19Gr.js → task-files-CXtCOpeZ.js} +1 -1
  26. package/web/dist/assets/{task-thread-B3SeylDu.js → task-thread-CvszjkMb.js} +1 -1
  27. package/web/dist/assets/{use-desktop-DcMUyB3r.js → use-desktop-DA3CcdUo.js} +1 -1
  28. package/web/dist/assets/{workflows-FhbesxSU.js → workflows-5IeQxFY5.js} +1 -1
  29. package/web/dist/index.html +2 -2
  30. package/web/dist/assets/index-DVZDtEpT.js +0 -30
package/README.md CHANGED
@@ -435,6 +435,8 @@ Useful environment variables:
435
435
  | `CEZ_BROWSE_ROOT=~/` | Default root for **Add project → Open local folder…**. The picker cannot navigate above it; a saved workspace value overrides the environment default and must name an existing folder. |
436
436
  | `CEZ_PROJECTS_DIR=~/cezar/projects` | Default destination for **Clone from GitHub**. Saved workspace settings override it, and missing directories are created recursively. |
437
437
  | `CEZ_SKILLS_AUTO_UPDATE=0` | Disable automatic checks and updates for upstream-CLI-tracked Open Mercato skill installations. On by default; a saved global Skills setting overrides this environment default. Checks are delayed, bounded, cached, and non-blocking. |
438
+ | `CEZ_AUTONOMOUS_DEFAULT=0` | Seed the New Task Autonomous default (`0` or `1`). Without a seed, skills default on and workflows off; a saved global Resources setting overrides it. |
439
+ | `CEZ_WORKTREE_DEFAULT=1` | Seed the New Task Worktree default (`0` or `1`). Without a seed, eligible runs default on; a saved global Resources setting overrides it. |
438
440
  | `CEZ_SINGLE_PROJECT=1` | Opt into a launch-project-only cockpit: only the exact value `1` enables it. Project add, edit, checkout, folder browsing, and removal are refused and only the launch project is shown. Off by default; stored registry rows are retained, so unsetting it and restarting restores the full multi-project workspace without migration or data loss. |
439
441
  | `GITHUB_TOKEN` | Fallback for GitHub reads/PRs when `gh` isn't authenticated. |
440
442
  | `CEZ_ENV_PASSTHROUGH=A,B` | Forward these extra host env vars to spawned agents. By default agents get a least-privilege env (safe shell/toolchain vars + the backend's own auth + `GITHUB_TOKEN` + `CEZ_*`), not your full environment — use this to add a var an agent needs. |
@@ -162,6 +162,12 @@ export interface WorkspaceConfigResponse {
162
162
  /** Stored override; null means inherit CEZ_SKILLS_AUTO_UPDATE, then true. */
163
163
  skillsAutoUpdate: boolean | null;
164
164
  effectiveSkillsAutoUpdate: boolean;
165
+ composerDefaults: {
166
+ autonomous: boolean | null;
167
+ worktree: boolean | null;
168
+ inheritedAutonomous: boolean | 'source-dependent';
169
+ inheritedWorktree: boolean;
170
+ };
165
171
  resources: {
166
172
  maxParallel: number;
167
173
  maxMonitoringSessions: number;
@@ -31,7 +31,7 @@ import { gatedSkillsRepos, loadConfig, resolveWorktreeRetention } from '../confi
31
31
  import { findConfigFile } from '../agent-config/catalog.js';
32
32
  import { readConfigFile, writeConfigFile } from '../agent-config/files.js';
33
33
  import { listAgentConfig } from '../agent-config/service.js';
34
- import { PROJECT_ID_RE, defaultWorkspaceConfig, effectiveSkillsAutoUpdate, loadWorkspaceConfig, mergeWriteWorkspaceConfig, } from '../workspace/config.js';
34
+ import { PROJECT_ID_RE, defaultWorkspaceConfig, effectiveSkillsAutoUpdate, loadWorkspaceConfig, mergeWriteWorkspaceConfig, effectiveComposerDefault, } from '../workspace/config.js';
35
35
  import { allocateProjectSlug, listProjects, probeProjectStatus, registerProject, removeProject, shouldRegisterProject, } from '../workspace/projects.js';
36
36
  import { mergeWriteWorkspaceUiState, readWorkspaceUiState } from '../workspace/ui-state.js';
37
37
  import { checkoutRepo } from './checkout.js';
@@ -1501,6 +1501,16 @@ export function createApp(deps) {
1501
1501
  projectsDir: config.projectsDir,
1502
1502
  skillsAutoUpdate: config.skillsAutoUpdate ?? null,
1503
1503
  effectiveSkillsAutoUpdate: effectiveSkillsAutoUpdate(config),
1504
+ composerDefaults: {
1505
+ autonomous: config.composerDefaults.autonomous ?? null,
1506
+ worktree: config.composerDefaults.worktree ?? null,
1507
+ inheritedAutonomous: process.env.CEZ_AUTONOMOUS_DEFAULT === '0'
1508
+ ? false
1509
+ : process.env.CEZ_AUTONOMOUS_DEFAULT === '1'
1510
+ ? true
1511
+ : 'source-dependent',
1512
+ inheritedWorktree: effectiveComposerDefault(undefined, process.env.CEZ_WORKTREE_DEFAULT, true),
1513
+ },
1504
1514
  resources: {
1505
1515
  maxParallel: config.resources.maxParallel,
1506
1516
  maxMonitoringSessions: config.resources.maxMonitoringSessions,
@@ -1517,6 +1527,12 @@ export function createApp(deps) {
1517
1527
  browseRoot: z.string().trim().min(1).max(4096).optional(),
1518
1528
  projectsDir: z.string().trim().min(1).max(4096).optional(),
1519
1529
  skillsAutoUpdate: z.boolean().nullable().optional(),
1530
+ composerDefaults: z
1531
+ .object({
1532
+ autonomous: z.boolean().nullable().optional(),
1533
+ worktree: z.boolean().nullable().optional(),
1534
+ })
1535
+ .optional(),
1520
1536
  resources: z
1521
1537
  .object({
1522
1538
  maxParallel: z.number().int().min(1).max(16).optional(),
@@ -1532,7 +1548,7 @@ export function createApp(deps) {
1532
1548
  if (!parsed.success) {
1533
1549
  return c.json({ error: parsed.error.issues.map((i) => i.message).join('; ') }, 400);
1534
1550
  }
1535
- const { browseRoot, projectsDir, skillsAutoUpdate, resources } = parsed.data;
1551
+ const { browseRoot, projectsDir, skillsAutoUpdate, composerDefaults, resources } = parsed.data;
1536
1552
  for (const [configuredRoot, create] of [
1537
1553
  [browseRoot, false],
1538
1554
  [projectsDir, true],
@@ -1575,6 +1591,16 @@ export function createApp(deps) {
1575
1591
  delete config.skillsAutoUpdate;
1576
1592
  else if (skillsAutoUpdate !== undefined)
1577
1593
  config.skillsAutoUpdate = skillsAutoUpdate;
1594
+ if (composerDefaults?.autonomous === null)
1595
+ delete config.composerDefaults.autonomous;
1596
+ else if (composerDefaults?.autonomous !== undefined) {
1597
+ config.composerDefaults.autonomous = composerDefaults.autonomous;
1598
+ }
1599
+ if (composerDefaults?.worktree === null)
1600
+ delete config.composerDefaults.worktree;
1601
+ else if (composerDefaults?.worktree !== undefined) {
1602
+ config.composerDefaults.worktree = composerDefaults.worktree;
1603
+ }
1578
1604
  if (resources?.maxParallel !== undefined)
1579
1605
  config.resources.maxParallel = resources.maxParallel;
1580
1606
  if (resources?.maxMonitoringSessions !== undefined) {