Skip to content

Some Summary#14

Open
Fiooodooor wants to merge 13 commits into
Fiooodooor:mainfrom
freeskyjewel-cpu:main
Open

Some Summary#14
Fiooodooor wants to merge 13 commits into
Fiooodooor:mainfrom
freeskyjewel-cpu:main

Conversation

@Fiooodooor
Copy link
Copy Markdown
Owner

Summary

  • Problem:
  • Why it matters:
  • What changed:
  • What did NOT change (scope boundary):

Change Type

  • Bug fix
  • Feature
  • Refactor
  • NIC porting slice (specify phase + role below)
  • Docs
  • Security hardening
  • Chore/infra

Scope

  • ClawTeam CLI / orchestration
  • Spawn / backends
  • Skills / tool execution
  • MCP server / transport
  • Task board / inbox
  • NIC porting agents / identities
  • Templates / profiles
  • Tests
  • CI/CD / infra
  • Docs

NIC Porting Context (if applicable)

Field Value
Driver
Target OS
Phase
Role
Board Task ID

Gate Checklist (NIC porting PRs)

  • native_score >= 98.0 (no framework/non-native API calls)
  • portability_score >= 95.0 (cross-compile matrix clean)
  • test_pass_rate = 100% (all TDD tests green)
  • build_status = green (Linux + FreeBSD compile)
  • critical_risks = 0 (no open critical risks in register)
  • Zero-copy verified (no memcpy in hot paths)
  • DMA sync discipline followed (PREWRITE/POSTREAD bracketing)
  • Checker agent PASS verdict attached

Linked Issue/PR

  • Closes #
  • Related #
  • This PR fixes a bug or regression

Root Cause / Regression History (if applicable)

  • Root cause:
  • Missing detection / guardrail:
  • Prior context:
  • Why this regressed now:

Risk Register Impact

  • No new risks introduced
  • New risk(s) added to register with mitigation owner
  • Existing risk(s) mitigated or closed (specify IDs):

Regression Test Plan

For bug fixes, name the test(s) that would have caught this. For porting slices,
list the TDD tests that validate the change. Otherwise write N/A.

  • Coverage level that should have caught this:
    • Unit test
    • Seam / integration test
    • End-to-end test
    • Existing coverage already sufficient
  • Target test or file:
  • Scenario the test should lock in:
  • Why this is the smallest reliable guardrail:
  • Existing test that already covers this (if any):
  • If no new test is added, why not:

User-visible / Behavior Changes

List user-visible changes (including defaults/config).
If none, write None.

Diagram (if applicable)

For UI changes or non-trivial logic flows, include a small ASCII diagram reviewers can scan quickly. Otherwise write N/A.

Before:
[user action] -> [old state]

After:
[user action] -> [new state] -> [result]

Security Impact (required)

  • New permissions/capabilities? (Yes/No)
  • Secrets/tokens handling changed? (Yes/No)
  • New/changed network calls? (Yes/No)
  • Command/tool execution surface changed? (Yes/No)
  • Data access scope changed? (Yes/No)
  • If any Yes, explain risk + mitigation:

Repro + Verification

Environment

  • OS:
  • Runtime/container:
  • Model/provider:
  • Integration/channel (if any):
  • Relevant config (redacted):

Steps

Expected

Actual

Evidence

Attach at least one:

  • Failing test/log before + passing after
  • Trace/log snippets
  • Screenshot/recording
  • Perf numbers (if relevant)

Human Verification (required)

What you personally verified (not just CI), and how:

  • Verified scenarios:
  • Edge cases checked:
  • What you did not verify:

Review Conversations

  • I replied to or resolved every bot review conversation I addressed in this PR.
  • I left unresolved only the conversations that still need reviewer or maintainer judgment.

If a bot review conversation is addressed by this PR, resolve that conversation yourself. Do not leave bot review conversation cleanup for maintainers.

Compatibility / Migration

  • Backward compatible? (Yes/No)
  • Config/env changes? (Yes/No)
  • Migration needed? (Yes/No)
  • If yes, exact upgrade steps:

Risks and Mitigations

List only real risks for this PR. Add/remove entries as needed. If none, write None.

  • Risk:
    • Mitigation:

Copilot AI review requested due to automatic review settings May 9, 2026 16:47
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR introduces a new task lifecycle state (review) and wires it through the CLI, board/dashboard rendering, and task stats, alongside adding a lightweight REST API surface to the board server and expanding CI and test coverage (including transport and new board endpoints).

Changes:

  • Add TaskStatus.review and propagate it through task stats, CLI rendering/output, board renderer/static UI, and website mock terminal badge styling.
  • Add/expand board server REST endpoints (create team/task, update task, send message, cleanup team) plus a /api/stats endpoint and request timing/logging.
  • Add new tests for watcher/waiter/transports/conflicts/board endpoints and extend CI with frontend build, packaging build, and a p2p test job.

Reviewed changes

Copilot reviewed 22 out of 22 changed files in this pull request and generated 8 comments.

Show a summary per file
File Description
website/src/styles.css Adds --purple theme color and .t-review badge styling.
website/src/App.jsx Updates terminal mock task badge from blocked to review.
tests/test_watcher.py Adds unit tests for InboxWatcher polling and exec callback behavior.
tests/test_waiter.py Adds unit tests for TaskWaiter completion/timeout/review counting/dead-agent recovery.
tests/test_transport.py Adds tests for FileTransport and P2PTransport delivery/claim/ack/quarantine/count.
tests/test_tasks.py Extends TaskStore tests for review lock clearing and review status stats/filtering.
tests/test_spawn_backends.py Stabilizes PATH-related tests by clearing CLAWTEAM_BIN.
tests/test_conflicts.py Adds tests for changed-line parsing and overlap severity computation.
tests/test_board.py Adds tests for BoardRenderer review column and BoardHandler REST handlers.
SPECIFICATION.md Adds a technical spec for the web dashboard and REST API.
skills/clawteam/references/cli-reference.md Documents review as a valid task status and describes it.
docs/skills/clawteam/references/cli-reference.md Mirrors the CLI reference updates under docs/.
clawteam/transport/file.py Prevents count/fetch/claim from creating inbox dirs; handles missing inbox gracefully.
clawteam/team/waiter.py Adds review counting to waiter progress/result output.
clawteam/team/tasks.py Clears task lock when transitioning to review; includes review in stats.
clawteam/team/models.py Adds TaskStatus.review enum member.
clawteam/cli/commands.py Updates CLI help, styling, stats, and waiter progress output to include review.
clawteam/board/static/index.html Adds review column and updates layout to 5 columns.
clawteam/board/server.py Adds REST endpoints, stats endpoint, and request duration logging/connection stats.
clawteam/board/renderer.py Adds review column to kanban render and updates docstring.
clawteam/board/collector.py Groups tasks using all TaskStatus enum values (including review).
.github/workflows/ci.yml Adds frontend build, Python package build, p2p test job, and Pages deploy pipeline.

Comment thread tests/test_transport.py
Comment on lines +3 to +6
import os
import time
import fcntl
from pathlib import Path
Comment thread tests/test_transport.py
Comment on lines +21 to +38
def test_p2p_transport_deliver_and_fetch(team_name):
# Receiver
receiver = P2PTransport(team_name, bind_agent="bob")

# Sender
sender = P2PTransport(team_name)

try:
data = b"p2p message"
sender.deliver("bob", data)

# Fetch on receiver (should use ZMQ)
# We might need a small sleep to allow ZMQ to connect and deliver
time.sleep(0.2)

fetched = receiver.fetch("bob", consume=True)
assert len(fetched) == 1
assert fetched[0] == data
Comment thread tests/test_waiter.py

import pytest
from unittest.mock import MagicMock, patch
from clawteam.team.waiter import TaskWaiter, WaitResult, TaskStatus
Comment thread .github/workflows/ci.yml
@@ -30,3 +30,58 @@ jobs:
python-version: ${{ matrix.python-version }}
- run: pip install -e ".[dev]"
Comment thread clawteam/board/server.py
Comment on lines +55 to +65
"""Handle a single HTTP request with performance tracking."""
self._start_time = time.monotonic()
with self._stats_lock:
BoardHandler._active_connections += 1
BoardHandler._total_requests += 1
try:
super().handle()
finally:
with self._stats_lock:
BoardHandler._active_connections -= 1

Comment thread clawteam/board/server.py
Comment on lines +131 to +142
if content_length == 0:
return {}
body = self.rfile.read(content_length)
return json.loads(body.decode("utf-8"))
except Exception:
return {}

def _handle_create_team(self):
from clawteam.identity import AgentIdentity
from clawteam.team.manager import TeamManager

body = self._get_json_body()
Comment thread clawteam/team/waiter.py
Comment on lines 47 to 52
task_store: TaskStore,
poll_interval: float = 5.0,
timeout: float | None = None,
on_message: Callable[[TeamMessage], None] | None = None,
on_progress: Callable[[int, int, int, int, int], None] | None = None,
on_progress: Callable[[int, int, int, int, int, int], None] | None = None,
on_agent_dead: Callable[[str, list[TaskItem]], None] | None = None,
Comment thread SPECIFICATION.md
Comment on lines +35 to +38
## Testing Strategy
- **Unit Tests**: Implement comprehensive unit tests for `BoardHandler` in `tests/test_api.py`.
- **Integration Tests**: Verify end-to-end flows from API calls to filesystem changes.
- **UI Validation**: Ensure the landing page is responsive and visually consistent.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants