Commit Graph

729 Commits

Author SHA1 Message Date
e02506b688 docs: document rebase-before-merge protection (#1253) 2026-04-15 21:24:02 -04:00
c4201ae27d feat: codify rebase-before-merge protection (#1253) 2026-04-15 21:24:02 -04:00
2d73c816d5 feat: codify rebase-before-merge protection (#1253) 2026-04-15 21:24:02 -04:00
3c367f1ca7 wip: add rebase-before-merge protection tests 2026-04-15 21:24:02 -04:00
Alexander Whitestone
eb50b39c0f docs: add night shift prediction report (#1353) 2026-04-15 21:24:02 -04:00
de82be0621 fix: add branch existence check before Gitea API file operations (#1441) (#1487)
Merge PR #1487
2026-04-15 21:24:02 -04:00
fc117f6e7c fix: port 8080 conflict between L402 server and preview (#1415) (#1431)
Merge PR #1431
2026-04-15 21:24:02 -04:00
eafe213c66 feat: cross-session agent memory via MemPalace (#1477)
Merge PR #1477
2026-04-15 21:24:02 -04:00
e7f6655a10 fix: add portals.json validation tests (#1489)
Merge PR #1489
2026-04-15 21:24:02 -04:00
675e352351 feat: implement Issue #1127 triage recommendations (#1403)
Merge PR #1403
2026-04-15 21:24:02 -04:00
01339952fe feat: standardize llama.cpp backend for sovereign local inference (#1123) 2026-04-15 21:24:01 -04:00
c3fc2e4c29 feat: standardize llama.cpp backend for sovereign local inference (#1123) 2026-04-15 21:24:01 -04:00
2c8844a478 feat: standardize llama.cpp backend for sovereign local inference (#1123) 2026-04-15 21:24:01 -04:00
1cadc33882 feat: standardize llama.cpp backend for sovereign local inference (#1123) 2026-04-15 21:24:01 -04:00
4e2a353ba3 feat: standardize llama.cpp backend for sovereign local inference (#1123) 2026-04-15 21:24:01 -04:00
c3d0400918 feat: standardize llama.cpp backend for sovereign local inference (#1123) 2026-04-15 21:24:01 -04:00
1fb98ff769 feat: standardize llama.cpp backend for sovereign local inference (#1123) 2026-04-15 21:24:01 -04:00
a3570df3b2 feat: standardize llama.cpp backend for sovereign local inference (#1123) 2026-04-15 21:24:01 -04:00
a62d39470f feat: standardize llama.cpp backend for sovereign local inference (#1123) 2026-04-15 21:24:01 -04:00
4fb292ca43 feat: standardize llama.cpp backend for sovereign local inference (#1123) 2026-04-15 21:24:01 -04:00
4b0e375697 [claude] Close duplicate PRs for issue #1128 (#1449) (#1466) 2026-04-15 21:24:01 -04:00
Alexander Whitestone
17be3c8804 feat: Add forge cleanup tools and documentation (#1128)
## Summary
Implements forge cleanup tools and documentation as requested in issue #1128.

## Changes
- scripts/cleanup-duplicate-prs.sh: Automated duplicate PR detection
- docs/forge-cleanup-analysis.md: Analysis of duplicate PRs
- docs/forge-cleanup-report.md: Cleanup report with metrics
- .github/workflows/pr-duplicate-check.yml: Weekly automated checks

Issue: #1128
2026-04-15 21:24:01 -04:00
6bbd1c2baf [claude] Close duplicate PRs for issue #1338 (#1451) (#1464) 2026-04-15 21:24:01 -04:00
604f73a1b8 [claude] Close duplicate PRs for issue #1339 (#1450) (#1465) 2026-04-15 21:24:01 -04:00
825a2c8a94 [claude] Close duplicate PRs for issue #1336 (#1452) (#1456) 2026-04-15 21:24:01 -04:00
Alexander Whitestone
b2f4bd0448 fix: Remove duplicate content blocks from README.md and POLICY.md (#1338)
This commit fixes issue #1338 by removing duplicate content blocks that
were appearing 3-4 times on the page.

Changes:
1. README.md:
   - Removed duplicate "Branch Protection & Review Policy" section (lines 121-134)
   - Removed duplicate "Running Locally" section (lines 149-167)
   - Kept the detailed "Branch Protection & Review Policy" section at the top
   - Kept the first "Running Locally" section with all content

2. POLICY.md:
   - Consolidated duplicate content into single cohesive policy
   - Merged two "Branch Protection Rules" sections
   - Merged two "Default Reviewer" sections
   - Merged two "Acceptance Criteria" sections
   - Added "Enforcement" and "Notes" sections from second half

The duplicate content was likely caused by a bad merge or template duplication.
This cleanup ensures each section appears only once while preserving all content.

Closes #1338
2026-04-15 21:24:01 -04:00
40502cf91c feat: standardize llama.cpp backend for sovereign local inference (#1123) 2026-04-15 21:24:01 -04:00
2c2181cbaf feat: standardize llama.cpp backend for sovereign local inference (#1123) 2026-04-15 21:24:01 -04:00
3cb45008f6 feat: standardize llama.cpp backend for sovereign local inference (#1123) 2026-04-15 21:24:01 -04:00
7d475151ea feat: standardize llama.cpp backend for sovereign local inference (#1123) 2026-04-15 21:24:01 -04:00
181d4ce933 feat: standardize llama.cpp backend for sovereign local inference (#1123) 2026-04-15 21:24:01 -04:00
ecbd104d03 feat: standardize llama.cpp backend for sovereign local inference (#1123) 2026-04-15 21:24:01 -04:00
6e3ea2637c feat: standardize llama.cpp backend for sovereign local inference (#1123) 2026-04-15 21:24:01 -04:00
779a65cd83 feat: standardize llama.cpp backend for sovereign local inference (#1123) 2026-04-15 21:24:01 -04:00
bc48abd970 feat: standardize llama.cpp backend for sovereign local inference (#1123) 2026-04-15 21:24:01 -04:00
a3f1688cb7 feat: standardize llama.cpp backend for sovereign local inference (#1123) 2026-04-15 21:24:01 -04:00
a80d749f69 [claude] Add .gitattributes export-ignore + large-repo clone docs (#1428) (#1433) 2026-04-15 21:24:01 -04:00
e7ab9fbe17 feat: standardize llama.cpp backend for sovereign local inference (#1123) 2026-04-15 21:24:01 -04:00
c61c8bb030 feat: standardize llama.cpp backend for sovereign local inference (#1123) 2026-04-15 21:24:01 -04:00
8fd5d57864 feat: standardize llama.cpp backend for sovereign local inference (#1123) 2026-04-15 21:24:01 -04:00
3b5c62fa76 feat: standardize llama.cpp backend for sovereign local inference (#1123) 2026-04-15 21:24:01 -04:00
a4f76705df feat: standardize llama.cpp backend for sovereign local inference (#1123) 2026-04-15 21:24:01 -04:00
dc74a84192 feat: standardize llama.cpp backend (#1123) 2026-04-15 21:24:01 -04:00
48f85da0c0 feat: standardize llama.cpp backend (#1123) 2026-04-15 21:24:01 -04:00
a0443a7003 feat: standardize llama.cpp backend (#1123) 2026-04-15 21:24:01 -04:00
428a9da3bd feat: standardize llama.cpp backend for sovereign local inference (#1123) 2026-04-15 21:24:01 -04:00
3361100830 feat: standardize llama.cpp backend for sovereign local inference (#1123) 2026-04-15 21:24:01 -04:00
Alexander Whitestone
6da8d627b6 fix: ChatLog.log() crash — CHATLOG_FILE defined after use (#1349)
Move configuration block (WORLD_DIR, CHATLOG_FILE, etc.) before the
ChatLog class definition. Previously CHATLOG_FILE was defined at line ~254
but used at line ~200 inside ChatLog.log(), causing NameError on every
chat message persistence attempt.

Fixes #1349.
2026-04-15 21:24:01 -04:00
Alexander Whitestone
ec2a427a7a feat: implement A2A protocol for fleet-wizard delegation (#1122)
Implements Google Agent2Agent Protocol v1.0 with full fleet integration:

## Phase 1 - Agent Card & Discovery
- Agent Card types with JSON serialization (camelCase, Part discrimination by key)
- Card generation from YAML config (~/.hermes/agent_card.yaml)
- Fleet registry with LocalFileRegistry + GiteaRegistry backends
- Discovery by skill ID or tag

## Phase 2 - Task Delegation
- Async A2A client with JSON-RPC SendMessage/GetTask/ListTasks/CancelTask
- FastAPI server with pluggable task handlers (skill-routed)
- CLI tool (bin/a2a_delegate.py) for fleet delegation
- Broadcast to multiple agents in parallel

## Phase 3 - Security & Reliability
- Bearer token + API key auth (configurable per agent)
- Retry logic (max 3 retries, 30s timeout)
- Audit logging for all inter-agent requests
- Error handling per A2A spec (-32001 to -32009 codes)

## Test Coverage
- 37 tests covering types, card building, registry, server integration
- Auth (required + success), handler routing, error handling

Files:
- nexus/a2a/ (types.py, card.py, client.py, server.py, registry.py)
- bin/a2a_delegate.py (CLI)
- config/ (agent_card.example.yaml, fleet_agents.json)
- docs/A2A_PROTOCOL.md
- tests/test_a2a.py (37 tests, all passing)
2026-04-15 21:24:01 -04:00
Timmy
d19f62476c fix(#1356): ThreadingHTTPServer for multi-user bridge concurrency
Replace single-threaded HTTPServer with ThreadingHTTPServer
(thread-per-request) in both multi_user_bridge.py copies.

Fixes #1356
2026-04-15 21:24:01 -04:00