Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
64 changes: 55 additions & 9 deletions .env.example
Original file line number Diff line number Diff line change
Expand Up @@ -13,21 +13,32 @@
# -----------------------------------------------------------------------------
# LLM Configuration
# -----------------------------------------------------------------------------
# API key for the LLM provider. Used by all glm-4 agents and as the fallback
# for CoderAgent. Treat as a top-level secret it is injected into the
# credential gateway, never passed directly to agent prompts.
# API key for the OpenAI-compatible LLM provider used by every agent.
# Treat it as a top-level secret: inject it into the credential gateway and
# never pass it directly to agent prompts.
LLM_API_KEY=

# Base URL of the OpenAI-compatible endpoint serving GLM-4 / Codex.
# Base URL of the Z.AI OpenAI-compatible endpoint serving GLM-5.2.
# Examples:
# - ZhipuAI: https://open.bigmodel.cn/api/paas/v4
# - Z.AI general: https://api.z.ai/api/paas/v4/
# - Local vLLM: http://127.0.0.1:8000/v1
# - Azure OpenAI: https://<resource>.openai.azure.com
LLM_BASE_URL=https://open.bigmodel.cn/api/paas/v4
LLM_BASE_URL=https://api.z.ai/api/paas/v4/

# Default model name. Individual agents override this in config/agents.yaml
# (e.g. CoderAgent uses "codex" with a "glm-4" fallback).
LLM_MODEL=glm-4
# Keep this identical to the model registered in AgentTeams.
LLM_MODEL=glm-5.2

# Embeddings are a separately metered Z.AI capability. By default they reuse
# the LLM key and endpoint; set these when using a distinct provider/account.
# `embedding-3` must be enabled in the selected account's resource package.
EMBEDDING_API_KEY=
EMBEDDING_BASE_URL=https://api.z.ai/api/paas/v4/
EMBEDDING_MODEL=embedding-3

# openai-compatible for semantic provider embeddings; local-hash is a
# credential-free deterministic degraded mode for offline/test deployments.
EMBEDDING_PROVIDER=openai-compatible
LOCAL_EMBEDDING_DIMENSION=384

# -----------------------------------------------------------------------------
# GitHub Configuration
Expand Down Expand Up @@ -57,6 +68,10 @@ CHROMADB_PATH=.devflow/chromadb
# remote collector (e.g. Tempo, Jaeger, or the OTel Collector) in prod.
OTEL_EXPORTER_OTLP_ENDPOINT=http://127.0.0.1:4317

# Loopback Prometheus exposition started with the CI/CD MCP service.
DEVFLOW_METRICS_HOST=127.0.0.1
DEVFLOW_METRICS_PORT=9090

# Deployment environment tag attached to every trace/metric as a resource
# attribute. Useful for filtering prod vs staging vs dev.
# Default: development
Expand Down Expand Up @@ -87,6 +102,37 @@ MCP_CICD_PORT=8766
# Default: github_actions
CICD_PROVIDER=github_actions

# Repository and server-owned argv used by the isolated CI/CD MCP server.
# Agents never receive permission to submit an arbitrary command.
DEVFLOW_REPOSITORY_ROOT=
CICD_TEST_COMMAND_JSON=["python","-m","pytest","-q"]
CICD_TEST_TIMEOUT_SECONDS=600

# Optional server-owned rollback provider. The command receives environment and
# target only through DEVFLOW_DEPLOYMENT_ENVIRONMENT/DEVFLOW_TARGET_RELEASE.
CICD_ROLLBACK_COMMAND_JSON=
CICD_ROLLBACK_TIMEOUT_SECONDS=120
CICD_RELEASE_STATE_PATH=.devflow/releases.json

# Optional built-in atomic symlink rollback provider for Linux deployments:
# CICD_ROLLBACK_COMMAND_JSON=["python3","scripts/rollback_release.py"]
CICD_RELEASES_ROOT=
CICD_RELEASE_LINK_TEMPLATE=
HEALTH_CHECK_URL=

# At least 32 random bytes used only by the trusted approval service and MCP
# policy layer to authenticate high-risk human approvals. Never expose it to an
# Agent, model prompt, or client-side environment.
DEVFLOW_APPROVAL_HMAC_KEY=

# Separate key used by the trusted runtime and internal MCP server to prevent
# forged Agent/Skill call context. Use at least 32 random bytes.
DEVFLOW_MCP_CONTEXT_HMAC_KEY=

# Signing key for short-lived credential capability handles. Provider secrets
# are resolved only inside trusted adapters and never returned to an Agent.
DEVFLOW_CREDENTIAL_BROKER_HMAC_KEY=

# -----------------------------------------------------------------------------
# Credential Gateway (Security)
# -----------------------------------------------------------------------------
Expand Down
2 changes: 2 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
* text=auto eol=lf
*.ps1 text eol=crlf
16 changes: 10 additions & 6 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,21 +23,25 @@ jobs:
python-version: ${{ matrix.python-version }}
cache: pip
- name: Install
run: python -m pip install -e ".[dev]"
run: python -m pip install -e ".[dev,mcp]"
- name: Validate configuration
run: python -m devflow.cli validate
- name: Lint
run: ruff check .
- name: Type check
run: mypy src scripts tests
- name: Build AgentTeams package
run: python scripts/build_agentteams_package.py
- name: Test
run: python -m pytest -q
run: python -m pytest --cov=devflow --cov-report=term --cov-fail-under=80 -q
- name: Evaluate Skills
run: python scripts/evaluate_skills.py
- name: Build AgentTeams package
run: python scripts/build_agentteams_package.py
- name: Validate behavioral evaluation suite
run: python scripts/run_behavior_evals.py --validate-only
- uses: actions/upload-artifact@v4
with:
name: devflow-worker-python-${{ matrix.python-version }}
path: dist/devflow-worker.zip
name: devflow-role-packages-v1.3.0-python-${{ matrix.python-version }}
path: |
dist/devflow-*-v1.3.0.zip
dist/devflow-*-v1.3.0.zip.sha256
if-no-files-found: error
11 changes: 10 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
.env
.env.*
!.env.example
.venv/
.devflow/
.pytest_cache/
Expand All @@ -11,5 +13,12 @@ build/
dist/
htmlcov/
.coverage
coverage.json
logs/

tmp/
.tmp/
outputs/*.pptx.inspect.ndjson
outputs/*/
outputs/*.zip
outputs/*.zip.sha256
agentteams/systemd/
40 changes: 39 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,45 @@

All notable changes follow semantic versioning.

## 1.3.0 - 2026-07-28

- Added a typed Tester-to-TeamLeader-to-Coder repair route with sanitized,
digest-bound failure evidence, one route claim per execution attempt, and a
three-call issue-global Coder model budget shared by validation and test
retries.
- Hardened Coder input/output boundaries with shared credential redaction,
Locator-derived file scope, patch consistency checks, syntax validation, and
whole-candidate secret scanning.
- Upgraded `patch-generator` to 2.3.0 and `test-runner` to 3.2.0 with strict
runtime-aligned contracts, PatchCandidate 1.2 evidence scopes and model-call
ordinals, standalone
source-bound validators, and cross-Skill mediation checks.
- Added a canonical local task router, Leader-owned dispatch claims, deep-copy
event isolation, bounded test-result ingress, and generic named-credential
redaction.
- Bound T4/T5 resume approval to a deployment domain, policy key, project
incarnation, action, task, risk, target, and one exact request digest; added
legacy-policy and cross-deployment replay rejection tests, race-safe key
creation cleanup, and stale approval-ledger lock recovery.
- Prepared deterministic 1.3.0 release-candidate role packages and updated the
package server, controller cache policy, source attestation, CI artifacts,
and deployment documentation. Final commit/tag binding and server deployment
evidence remain separate release gates.

## 1.2.0 - 2026-07-27

- Published six deterministic, role-scoped AgentTeams Worker packages and
added a seventh `github-evidence` Skill with an envelope-bound local
authorizer.
- Added guarded TeamHarness role enforcement, idempotent task transitions,
digest-bound T4/T5 approval, and scope-bound GitHub capability issuance.
- Added a pinned Higress read-only MCP route, Broker receipts, NetworkPolicy,
Redis-backed MCP sessions, and live positive/negative boundary evidence.
- Added package, runtime, MinIO, Matrix compatibility, and native OpenClaw
boundary reconcilers with fail-closed checks.
- Added the final preliminary-round PPT/PDF, a fixed sample request and
machine-checkable expected output, and the complete Apache-2.0 license.

## 1.0.0 - 2026-07-24

- Added a six-agent AgentTeams software-delivery design.
Expand All @@ -11,4 +50,3 @@ All notable changes follow semantic versioning.
and terminal experience distillation.
- Added a credential-free deterministic demonstration and AgentTeams worker
package builder.

Loading
Loading