Commit Graph

19 Commits

Author SHA1 Message Date
-Puter
e744ac4687 Add Zopu dev bootstrap: git runtimes, Codex agent-os, dev agent
A vertical slice to bootstrap the product loop on the canonical zopu-code repo.

Primitives (packages/primitives, all tested + lint/type clean):
- GitRemoteRuntime: Gitea REST client (createIssue, createBranch,
  createPullRequest, listIssues, getIssue) as an Effect context service with
  a fetch-backed transport. Live-verified against puter/zopu-code.
- GitLocalRuntime: clone, addWorktree, commit, push, currentBranch,
  setRemoteUrl over a pluggable Shell (host subprocess now, AgentOS VM exec
  later). Tested against real temp git repos.
- agent-os: Codex support via @agentos-software/codex-cli — codexSoftware
  bundle (codex+git), makeCodexAgentOsConfig(), codexSessionEnv() for the
  OpenAI base URL/key.

Env:
- GITEA_URL/GITEA_TOKEN wired into convex.ts and convex.config.ts.
- .env.example documents the self-hosted git section.

Agents (packages/agents):
- zopu-dev: development agent that creates issues on the canonical repo and
  starts autonomous work runs. git-remote tools (create/list/branch/PR) wired
  to GitRemoteRuntime; start_workflow tool enqueues a work run.
- flue run zopu-dev verified live (lists/creates issues on real Gitea).

Backend (packages/backend):
- workflows.startIssueWork mutation: fetches a Gitea issue server-side and
  admits a queued work run. The Codex VM spawn body is the next step.
2026-07-25 03:18:23 +05:30
-Puter
1324316fee fix(signals): source order follows agent selection, not chronological timestamps
Remove the OutOfOrderSource constraint from composeSignal. The agent's
selection order is authoritative for source ordinals; timestamps remain
as per-source provenance metadata. This resolves the contract conflict
where reversed message selections (valid agent compositions) were
rejected by the primitive.

Each source still retains its original createdAt, so chronological
provenance is preserved exactly. The sourceKey includes ordered message
IDs, so different orderings produce distinct signals with deterministic
idempotency.

Coverage added:
- Primitive: non-chronological order accepted, timestamps preserved
- Backend: reversed selection preserves ordinals and exact raw text
2026-07-24 20:32:48 +05:30
-Puter
fb438ba9a7 feat: wire mobile workspace into project loop 2026-07-24 03:17:59 +05:30
-Puter
78c5a39999 Merge branch 'puter/issue-9-gitea-smoke' into puter/issue-14-integration
# Conflicts:
#	packages/primitives/package.json
2026-07-24 02:37:09 +05:30
-Puter
7f3cc840bf Merge branch 'puter/issue-8-project-loop' into puter/issue-14-integration
# Conflicts:
#	apps/web/src/components/projects/project-workspace-page.tsx
#	packages/primitives/package.json
#	packages/primitives/src/index.ts
2026-07-24 02:34:01 +05:30
-Puter
43e7c9050a Merge branch 'puter/issue-5-gitea-lifecycle' into puter/issue-14-integration
# Conflicts:
#	bun.lock
#	packages/agents/package.json
#	packages/agents/src/agents/project-manager.ts
#	packages/backend/convex/agentWorkspace.ts
2026-07-24 02:31:21 +05:30
-Puter
6be2b3a67c Merge branch 'puter/issue-7-gitea-checkout' into puter/issue-14-integration
# Conflicts:
#	bun.lock
#	packages/agents/package.json
#	packages/primitives/package.json
#	packages/primitives/src/index.ts
2026-07-24 02:27:13 +05:30
-Puter
7caad057db feat: prepare issue workspaces from connected repositories 2026-07-24 02:19:35 +05:30
-Puter
d343587c2b test: add Zopu integration smoke harness 2026-07-24 02:08:15 +05:30
-Puter
a17d53cb41 feat: add post-run Gitea lifecycle (#5) 2026-07-24 02:05:30 +05:30
-Puter
5d6ba558ab feat(web): build project loop workspace 2026-07-24 02:03:54 +05:30
-Puter
38c73847e0 feat: dispatch authenticated project issue requests 2026-07-24 02:00:02 +05:30
-Puter
f3d44ebcfa fix: prefer-at disable for backend compat, final lint pass 2026-07-23 18:51:49 +05:30
-Puter
7365322197 fix: lint cleanup, remove tests for later rewrite, ES compat
- Fix all Ultracite lint errors on changed source files (0 remaining)
- Remove project.test.ts and use-personal-organization.test.ts (to be
  rewritten when implementation stabilizes)
- Replace .at(-1) with index access for backend tsconfig ES target compat
- Rename generator functions to avoid no-shadow conflicts
- Refactor nested ternaries into helper functions
- Fix unused imports
2026-07-23 18:48:26 +05:30
-Puter
477e54240d feat: consolidate web auth and add Effect v4 Project primitives
Auth:
- Add useWebAuth hook as the single web-facing auth interface with four
  states (loading/unauthenticated/authenticated/inconsistent)
- Normalize getCurrentUser to return {id: tokenIdentifier, name, email}
- Rename requireOwnerId to requireAuthUserId across all backend callers
- Set expectAuth:true on ConvexReactClient singleton
- Migrate _app, _auth, user-menu, use-personal-organization to useWebAuth
- Remove unused @code/auth/server export (zero callers confirmed)

Primitives:
- Add packages/primitives/src/project.ts with Effect v4 Project domain:
  URL normalization, six canonical context kinds, strict remote decoding,
  context write decisioning with revision tracking, and no-op detection
- Define PublicGit and ProjectStore replaceable ports
- Define ProjectApplication service orchestrating domain+ports with
  deterministic error mapping
- Add comprehensive test suite (28 tests) with in-memory store and fake
  PublicGit covering normalization, seeds, idempotency, tenant isolation,
  last-write-wins, and typed error mapping
2026-07-23 18:04:02 +05:30
-Puter
ca967fcc1c feat(primitives): add signal module 2026-07-23 15:15:00 +05:30
-Puter
e9260cbd17 refactor(deps): migrate dependencies to catalog protocol 2026-07-23 15:03:44 +05:30
-Puter
52510d1107 chore: establish signals feature baseline 2026-07-23 14:29:57 +05:30
-Puter
ec84c52155 Add AgentOS daemon control plane and maintenance tooling 2026-07-19 06:29:51 +05:30