Commit Graph

14 Commits

Author SHA1 Message Date
saltbo 6deb0ea9ee test(adapters): bound Miniflare test timeouts 2026-09-02 12:34:39 -04:00
jarvis 7d6aecb469 ci: isolate Miniflare test projects 2026-09-02 10:10:39 -04:00
jarvis cabd349ee2 ci: run isolated test projects concurrently
Let Vitest schedule independent projects in parallel while keeping each stateful integration project single-worker, and complete the human review Inbox fixture.
2026-09-02 01:06:38 -04:00
jarvis a2fa54a729 feat!: rebuild Agent Kanban for Realmroot Toolbox
Replace the v1 Agent/Machine runtime and CLI architecture with the v2 Resource Server, AMA-backed projections, task lifecycle, session observation, BDD specifications, and a single-package layered codebase.

BREAKING CHANGE: remove the v1 CLI, internal Agent/Machine runtime entities, workspace layout, and legacy runtime coordination APIs.
2026-09-02 00:17:52 -04:00
saltbo a59ceba012 ci: restore runner-aware Vitest workers 2026-07-16 23:39:11 -04:00
saltbo 0cfd68954f chore(dev): refine AK skills and test tooling 2026-07-12 17:55:40 -04:00
saltbo 1dc2eb4de9 feat(maintainers): add scheduled heartbeat toggle
Add heartbeat_enabled persistence and enforce a 1 hour minimum heartbeat interval.

Keep webhook triggers active when scheduled heartbeat is disabled, and expose the toggle through the UI and CLI.
2026-06-26 14:58:31 -04:00
saltbo e4bf0fe3b3 feat: render agent soul markdown 2026-05-18 15:22:11 -04:00
saltbo 5861e55319 fix(chat): fix scrollbar, overflow, and Agent tool rendering in chat panel
- Remove right padding from chat drawer body so scrollbar sits flush
  against the drawer edge; add pr-3 inside viewport for content clearance
- Suppress horizontal scrollbar with overflow-x-hidden on viewport
- Remove redundant ChevronRight arrow from ToolShell (each tool has its
  own icon); fix truncate+break-words conflict by dropping truncate
- Rename tool registration from "Task" to "Agent" to match actual Claude
  API tool name — the custom TaskToolUI was never matching before
- Display subagent_type as label (e.g. CLEAN-CODE-REVIEWER) instead of
  generic "task:" prefix; fall back to "agent" when no type is specified
- Add Agent tool call examples to MockChatPage for dev preview
- Add 36 unit tests for ToolShell, parseMcpToolName, langFromPath, and
  agent label derivation
2026-04-14 13:56:42 -04:00
saltbo c9e9339ec8 refactor: migrate from Pages+Functions to Cloudflare Worker
Unify the app into a single Worker deployment:
- Move functions/api/ → server/, add worker/index.ts entry point
- Merge relay-worker DO (TunnelRelay) into the main worker
- Replace Pages Functions with @cloudflare/vite-plugin build
- Integrate share SSR (OG meta injection) into Hono routes
- Remove dayjs dep from shared (native Date suffices)
- Simplify dev to single `vite dev`, deploy via CF Git integration
- Delete packages/relay-worker/ and Pages-specific _routes.json
2026-04-13 07:58:39 -04:00
saltbo d84dc66373 refactor: replace prettier with biome for formatting and linting
Prettier's aggressive line-splitting (printWidth 100, single quotes) didn't
match the project's existing compact code style. Switch to Biome which
provides formatting + linting in one tool with better chain-call handling.

- Remove prettier, add @biomejs/biome
- Configure biome: double quotes, lineWidth 150, recommended lint rules
- Update lefthook pre-commit to use `biome check`
- Full codebase format pass with new config

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-24 19:51:41 -04:00
saltbo b285b60ad6 ci: add GitHub Actions CI with test coverage and badge
- Add CI workflow: build, type check, test with coverage on PRs and master
- Configure vitest coverage (v8 provider) scoped to source directories
- PR coverage report via vitest-coverage-report-action
- Coverage badge via GitHub Pages (no external services needed)
- Update CLAUDE.md with post-write workflow and testing conventions

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-24 15:46:45 -04:00
saltbo 70d2ab06d5 fix: agent JWT must include typ, aud, and forceAllowId for BA adapter
Integration tests revealed three issues with the agent-auth bridge:
- BA adapter silently ignores custom IDs without forceAllowId: true
- Agent JWT requires typ: "agent+jwt" in protected header
- Agent JWT requires aud claim matching the server URL

Adds integration test suite (miniflare + real D1) covering the full
agent-auth flow: machine/host creation, agent registration in both
tables, JWT verification, and rejection of invalid/unsigned tokens.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-21 21:53:32 -04:00
Jasper Van d8fffb55ce feat: Agent Kanban v1.2.0 — agent observatory, dependencies, SSE streaming (#1)
* feat: Agent Kanban v2 — agent observatory, dependencies, SSE streaming

Transform the board from a task tracker into an agent observatory with
real-time visibility, platform-driven assignment, and dependency-aware
task coordination.

- Agent entity: status tracking (idle/working/offline), GET /api/agents
- Task dependencies: depends_on with cycle detection, blocked computation
- Task origin: created_from for subtask tracking
- Assign/Release: POST /api/tasks/:id/assign and /release endpoints
- Stale detection: auto-release after 2h, write-on-read in board fetch
- SSE streaming: GET /api/tasks/:id/stream with polling fallback
- CLI: task assign/release, agent list, --parent/--depends-on flags
- UI: ActivityLog, AssignDropdown, AgentProfile, SubtaskList, blocked badges

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* fix(review): address 5 review findings from pre-landing review

- Narrow SSE auth bypass to exact path pattern (was too broad)
- Fix SSE reconnection: resolve log ID to timestamp for since filtering
- Compute blocked status in getBoard() so kanban view shows blocked badges
- Remove dead code in useSSE polling fallback
- Rename fetch→load in useAgents to avoid shadowing global

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* chore: bootstrap test framework (vitest)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* test: enum completeness coverage for v2 actions and agent statuses

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* chore: bump version and changelog (v1.2.0)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* docs: sync CLAUDE.md with v1.2.0 patterns

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-20 17:51:35 -04:00