Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
83 commits
Select commit Hold shift + click to select a range
3781f2a
feat: add provider multimodal message content contract
mastwet Jun 1, 2026
30e683f
feat: persist session attachment metadata
mastwet Jun 1, 2026
547bd68
feat: assemble image attachments in agent loop
mastwet Jun 1, 2026
fdb7bb8
feat: add vision request preparation
mastwet Jun 1, 2026
faedfae
docs: add M7 multimodal audit reports and acceptance logs
mastwet Jun 1, 2026
fe3fed7
docs: add plan-mode architecture, observability planning, and researc…
mastwet Jun 1, 2026
ed278d5
chore: archive legacy docs and consolidate old research material
mastwet Jun 1, 2026
34f74af
feat(gui): enhance chat view and desktop integration
mastwet Jun 1, 2026
9305386
docs: add todolist policy and GUI vision backlog
mastwet Jun 1, 2026
2e4a96e
docs: organize awesomeagents research notes
mastwet Jun 1, 2026
2353dcc
清理过期文件
mastwet Jun 3, 2026
5fcce4a
docs: unify autocommit rules
mastwet Jun 6, 2026
58c340e
feat(agent): runtime safety baseline closeout (MAIN-CLOSE-01)
Jun 6, 2026
f881892
feat(core): session truth-source closeout (MAIN-CLOSE-02)
Jun 6, 2026
e57246f
feat(core): logging, redaction, and provider safety closeout (MAIN-CL…
Jun 6, 2026
36debf0
feat(manager): backend multimodal boundary closeout (MAIN-CLOSE-04)
Jun 6, 2026
dcc31ec
docs: backlog and documentation closeout (MAIN-CLOSE-05)
Jun 6, 2026
ec36d92
docs: mark MAIN-CLOSE-01..05 as done in cards and TODOLIST
Jun 6, 2026
cb1fcb7
docs: reroute main backlog after compaction handoff
Jun 7, 2026
663d0d9
docs: clarify sandbox routing as pro-first
Jun 7, 2026
5885e0f
feat: add structured runtime observability
Jun 7, 2026
0a8f330
feat: add raw debug gateway bundle
Jun 7, 2026
05a798a
docs: add main audit issue writeups
Jun 10, 2026
69bc28a
docs: add main both-issue audit notes
Jun 10, 2026
7dfecbf
fix(audit): P0-2 shell restrict_to_workspace default true
Jun 10, 2026
524108c
fix(audit): P0-3 atomic file persistence with tempfile+fsync+rename
Jun 10, 2026
2878562
fix(audit): P1-6 telegram deny when allow_from empty
Jun 10, 2026
6f0a88b
fix(audit): P1-4 channel manager release lock before await
Jun 10, 2026
826f9b6
fix(audit): P1-7 replace S3 todo!() with proper errors
Jun 10, 2026
eec6345
fix(audit): P1-5 subagent timeout and concurrency limit
Jun 10, 2026
91a35b8
fix(audit): P3-15 structure ProviderError::ApiError
Jun 10, 2026
22e7617
fix(audit): P3-12 fix clippy warnings
Jun 10, 2026
8d7695b
fix(audit): P3-14 split litellm provider into modules
Jun 11, 2026
e555590
fix(audit): P3-13 add handler unit tests
Jun 11, 2026
1e33a73
fix(core): clean up all-targets clippy warnings
Jun 11, 2026
3004568
docs(todolist): mark H-6 clippy cleanup as fixed
Jun 11, 2026
a70bc30
docs: remove obsolete docs/ directory — migrated to agent-diva-pro
Jun 12, 2026
39cf951
docs: restore docs/resources/diva.png
Jun 12, 2026
54449c8
fix: honor MCP is_error responses
Jun 25, 2026
1086cb1
fix: remove stray MCP tool caller shim
Jun 25, 2026
cafb94d
fix(mcp): allow parallel tool calls on same MCP server
Jun 25, 2026
ed1da42
feat(core): implement Module trait lifecycle with topological ordering
Jun 25, 2026
0f7e674
feat(core): implement AgentBusEvent poke event chain
Jun 25, 2026
3c44f0e
feat(audit): implement structured audit logging and GUI audit page
Jun 25, 2026
40d928d
feat(security): implement PII redaction with 8-category detection
Jun 25, 2026
faaf035
feat(security): implement 3-layer prompt injection defense
Jun 25, 2026
e938ec3
feat(presence): implement user presence state machine with heartbeat …
Jun 25, 2026
c74d27b
feat(config): implement hot reload for runtime configuration
Jun 25, 2026
798cc83
fix(mcp): resolve 4 critical defects (C-2 to C-5)
Jun 25, 2026
9decbba
feat(providers): implement retry policy and fix token usage persistence
Jun 25, 2026
81d5a7a
refactor(tools): structure tool errors with Result<String> return type
Jun 25, 2026
574957c
fix(agent): fix subagent lifecycle - config iterations, running_tasks…
Jun 25, 2026
6c98e44
test(security): add injection red-team test suite
Jun 25, 2026
573da2e
docs: record provider and channel simplification decisions with produ…
Jun 26, 2026
94aa917
feat(config): wire harness domains into root config
Jun 27, 2026
387de10
feat(config): add reload plan diff command
Jun 27, 2026
4116613
feat(config): wire gateway config watcher
Jun 28, 2026
77e7be4
feat(agent): measure system prompt budget
Jun 28, 2026
62e6499
docs(prds): fix naming typo - harness not harmnes/harmness
Jun 28, 2026
57d2d0f
feat(harness): complete Wave 1 — ErrorKind, retry, error codes, Searc…
Jun 28, 2026
bc6538b
feat(tools): add PatchTool — 9 match strategies, security, diff output
Jun 28, 2026
e7210fd
feat(wave2): complete Wave 2 — Provider + Token + Subagent
Jun 28, 2026
fd679d9
feat(e2e): add crate skeleton, types, and config
Jun 28, 2026
16ac589
feat(e2e): implement EventCollector and assertion engine
Jun 28, 2026
14738fa
feat(e2e): implement ScenarioRunner with 7 YAML scenarios
Jun 28, 2026
e6e96f5
feat(e2e): add trace reporting and flaky statistics
Jun 28, 2026
ef7a41c
chore(e2e): add CI workflow and just e2e commands
Jun 28, 2026
62e306d
feat(wave1): add error codes and named toolset groups
Jun 28, 2026
f2d723a
feat(tools): implement ProcessTool for background process management
Jun 28, 2026
18380fa
feat(compaction): add summary data model with pointer chain
Jun 29, 2026
6020559
feat(compaction): implement LLM summary engine
Jun 29, 2026
7976a97
feat(quality): add SummaryQualityGate with keyword coverage
Jun 29, 2026
1191de1
feat(compaction): integrate LLM summary into compaction flow
Jun 29, 2026
67d87cc
feat(context): enhance system prompt budget with tiktoken strategy
Jun 29, 2026
3587f88
feat(tools): add generic tool timeout and ToolError::Timeout variant
Jun 29, 2026
48eb1d4
feat(quality): add consolidation quality gate with keyword coverage
Jun 29, 2026
c2c2390
feat(compaction): implement meta-compaction for summary chains > 10
Jun 29, 2026
6c7a54a
fix: replace expect() to satisfy F2 code quality review
Jun 29, 2026
f4e074e
feat(wave6): implement Wave 6 - ToolSet Config, ExecuteCodeTool, Dele…
Jun 30, 2026
f8ae5ae
fix(wave6): restore lost changes, fix pre-existing compile errors
Jun 30, 2026
e128da8
fix(core): harden heartbeat retry cadence
Jun 30, 2026
d95bcbc
fix(core): block double-encoded URL path traversal (B-11)
Jun 30, 2026
ab1e73f
fix(core): B-06 per-session rate limiter, B-16 bounded event bus, B-1…
Jun 30, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
46 changes: 46 additions & 0 deletions .github/workflows/e2e.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
name: E2E Tests (Real LLM)

on:
push:
branches:
- 'main'
- 'agent-diva-pro/**'
pull_request:
branches:
- 'main'
- 'agent-diva-pro/**'

env:
CARGO_TERM_COLOR: always

jobs:
e2e:
runs-on: ubuntu-latest
if: ${{ secrets.DEEPSEEK_API_KEY != '' }}

steps:
- uses: actions/checkout@v4

- name: Install Rust stable
uses: actions-rust-lang/setup-rust-toolchain@v1
with:
toolchain: stable

- name: Install just
uses: taiki-e/install-action@v2
with:
tool: just

- name: Run E2E tests
env:
DEEPSEEK_API_KEY: ${{ secrets.DEEPSEEK_API_KEY }}
run: just e2e
working-directory: agent-diva-pro

- name: Upload trace artifacts
if: always()
uses: actions/upload-artifact@v4
with:
name: e2e-traces
path: agent-diva-pro/target/e2e-traces/
retention-days: 7
39 changes: 32 additions & 7 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -110,7 +110,9 @@ Write focused unit tests near the code with `#[cfg(test)]`. Add integration test

## Commit & Pull Request Guidelines

Recent history follows Conventional Commit prefixes (`feat:`, `fix:`, `docs:`); keep using that style with concise imperative summaries. Before PRs, run `just ci`, describe behavioral impact, link related issues, and update docs when interfaces/channels/providers change. Keep PRs focused to a single concern for easier review.
Recent history follows Conventional Commit prefixes (`feat:`, `fix:`, `docs:`); keep using that style with concise imperative summaries. Commit each completed, self-contained update automatically instead of accumulating a large dirty working tree. Do not push unless the user explicitly requests it. Before PRs, run `just ci`, describe behavioral impact, link related issues, and update docs when interfaces/channels/providers change. Keep PRs focused to a single concern for easier review.

Before committing, clean up generated scratch artifacts, temporary scripts, stale archives, local test outputs, and other non-deliverable dirty-work files created during the task. Do not remove or revert unrelated user changes. Stage only the files for the current focused update, keep unrelated pre-existing changes out of the commit, and record deferred validation or follow-up items in the commit body/report and `TODOLIST.md` when applicable.

**Recommended PR checklist:**

Expand All @@ -130,6 +132,20 @@ Recent history follows Conventional Commit prefixes (`feat:`, `fix:`, `docs:`);
- `acceptance.md`: Acceptance steps from user/product perspective.
- Optional documentation: `prd.md`, `notes.md` (discussion records), `rollback.md` (rollback plan).

## TODOLIST Protocol

- `TODOLIST.md` at the repository root is the canonical backlog for discovered bugs, gaps, deferred work, and unfinished implementation or UX items.
- When an issue is found during code review, implementation, validation, or documentation work, add it to `TODOLIST.md` unless it is fixed in the same iteration.
- Entries should include enough context to recover the issue later: status checkbox, short title, reason, expected behavior, and related files or docs when available.
- When a TODO is completed, move or mark it under the done section instead of silently deleting it.

## COMMIT Rule

- Commits must use English Conventional Commit prefixes.
- Each commit should cover one focused concern only; avoid mixing unrelated cleanup, docs, and feature work.
- Before committing, ensure the changed set is clean of temporary artifacts and any non-deliverable scratch files.
- For non-trivial commits, include a short validation note in the commit message body or accompanying report when applicable.

## Command Mechanism

- New commands are recorded in `commands/commands.md` and maintain an index in this section (repository does not have this file — create it when adding the first command).
Expand Down Expand Up @@ -200,11 +216,11 @@ By default, all rules are mandatory; if exceptions are needed, they must be expl
- Execution Method: Include "update command index" in change list and acceptance items.
- Maintainer: Current assistant.

- **no-self-commit-without-request**:
- Constraints/Range of applicability: Do not commit or push code without user's explicit request.
- Example: Commit only after the user explicitly says "help me commit."
- Counterexample: Commit code without authorization.
- Execution Method: Confirm explicit user instruction before committing.
- **auto-commit-each-completed-update**:
- Constraints/Range of applicability: After each completed, self-contained update, automatically create one git commit for the files changed by that update. Do not push unless the user explicitly requests it.
- Example: After updating project rules in `AGENTS.md`, stage and commit only `AGENTS.md`; after finishing one focused bugfix, commit only that bugfix.
- Counterexample: Leave a completed update uncommitted, include unrelated pre-existing workspace changes in the commit, mix multiple concerns into one giant commit, or push without authorization.
- Execution Method: Before committing, inspect `git status --short --untracked-files=all`; clean or exclude current-task scratch artifacts; stage explicit paths for the current update only; verify the staged diff is one focused concern; run relevant validation when practical, or explicitly note deferred validation in the commit body/report; update `TODOLIST.md` for discovered but unfixed issues; commit with a concise English Conventional Commit message.
- Maintainer: Current assistant.

- **use-chinese-when-communicating**:
Expand All @@ -214,6 +230,15 @@ By default, all rules are mandatory; if exceptions are needed, they must be expl
- Execution Method: Use unison Chinese output.
- Maintainer: Current assistant.

- **todolist-capture-required**:
- Constraints/Range of applicability: Any discovered bug, unfinished work, known limitation, or deferred improvement must be recorded in root `TODOLIST.md` unless it is completed in the same iteration.
- Example: Discover that GUI image paste is not implemented; add an open TODO with context and expected behavior.
- Counterexample: Mention a future fix in chat but leave no durable project backlog entry.
- Execution Method: Update `TODOLIST.md` before final response or commit; include related docs/files when available.
- Maintainer: Current assistant.



---

## Project Rulebook
Expand Down Expand Up @@ -247,4 +272,4 @@ By default, all rules are mandatory; if exceptions are needed, they must be expl
- **Example**: `[I strictly follow the rules] Modification completed.`
- **Counterexample**: Replies without the prefix or only partially including the prefix.
- **Execution Method**: All outputs must include this prefix at the beginning.
- **Maintainer**: Current assistant.
- **Maintainer**: Current assistant.
104 changes: 102 additions & 2 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 2 additions & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ members = [
"agent-diva-channels",
"agent-diva-tools",
"agent-diva-files",
"agent-diva-e2e",
"agent-diva-cli",
"agent-diva-service",
"agent-diva-migration",
Expand Down Expand Up @@ -74,6 +75,7 @@ regex = "1.10"
lazy_static = "1.4"
once_cell = "1.19"
bytes = "1.5"
base64 = "0.22"
which = "6.0"
windows-service = "0.7"

Expand Down
Loading