|
|
@@ -1,5 +1,90 @@
|
|
|
# Release Notes
|
|
|
|
|
|
+## v1.1.0-rc1 — 2026-06-07
|
|
|
+
|
|
|
+**M1 Desktop runtime + M2 AgentPack ecosystem** — two milestones delivered
|
|
|
+ahead of schedule. 189 tests green on Python 3.10/3.11/3.12.
|
|
|
+
|
|
|
+### Highlights
|
|
|
+
|
|
|
+- **Three-mode deployment** (`desktop` | `lab` | `paas`) — flip one env var, same
|
|
|
+ codebase. Desktop mode defaults to `127.0.0.1`, auto-bootstraps a tenant +
|
|
|
+ API key on first launch, and hides `/admin` + `/billing` routes (oracle
|
|
|
+ defense, 404 not 403). Lab/PaaS modes unchanged.
|
|
|
+
|
|
|
+- **Desktop webui** — mode chip in sidebar, SR-002 cloud-privacy modal (first
|
|
|
+ use of a cloud model discloses what is/isn't sent), mode-aware nav labels
|
|
|
+ (scientists see "今日工作/资料库/模型与隐私" instead of platform-operator terms),
|
|
|
+ branded title per mode.
|
|
|
+
|
|
|
+- **FR-002 data directory** — Desktop: `~/LambdAgentDesktop` (user-visible in
|
|
|
+ Finder/Explorer). Lab/PaaS: `~/.agentpaas/data`. Wizard-persisted override
|
|
|
+ via `GET/PUT /setup/data-dir` (loopback-only).
|
|
|
+
|
|
|
+- **AgentPack ecosystem** — install/list/uninstall AgentPacks from local zips.
|
|
|
+ Manifest validates id, semver, entrypoint path escape, shell permission (SR-003
|
|
|
+ deny-by-default). Store: zip-slip defense, yaml.safe_load, per-version dirs.
|
|
|
+
|
|
|
+- **3 built-in research packs** — `research.top-journal-reviewer` (论文审稿报告
|
|
|
+ + 中稿概率 + 修改清单), `research.literature-mapper` (文献地图 + 方法谱系),
|
|
|
+ `research.grant-planner` (立项依据 + 技术路线 + 风险). All local-first
|
|
|
+ (no shell, no network), compile cleanly via `from_config`.
|
|
|
+
|
|
|
+- **Citation-aware PDF ingestion** — `lambdagent/ingest.py`: pdfplumber page-
|
|
|
+ number-preserving chunker, `[Source N | file.pdf p.12]` citation format,
|
|
|
+ Obsidian `[[wiki]]` link expansion.
|
|
|
+
|
|
|
+- **Pack→Agent one-click** — `POST /agentpacks/{id}/create-agent` creates an
|
|
|
+ agent backed by an installed pack. `agent_dir=pack.path`, `_config_dir=pack.path`
|
|
|
+ so sub-agent `./agents/x.yml` references resolve inside the pack root.
|
|
|
+
|
|
|
+- **AgentPacks webui page** — `/agentpacks` route: install from local zip path,
|
|
|
+ list installed packs with permission chips, uninstall, "从此包创建智能体" modal.
|
|
|
+ Safety banner highlights local-first constraints.
|
|
|
+
|
|
|
+- **E2E dogfood tests** — `tests/test_agentpack_e2e.py` (11 tests): full HTTP
|
|
|
+ path install→list→get→create-agent→GET agent→`from_config()` compile→uninstall
|
|
|
+ (no cascade delete). `scripts/dogfood_agentpack.py`: manual LLM run script.
|
|
|
+
|
|
|
+### New routes
|
|
|
+
|
|
|
+```
|
|
|
+GET /api/v1/setup/mode — mode + bootstrapped flag (unauthenticated)
|
|
|
+GET /api/v1/setup/data-dir — current data dir (loopback)
|
|
|
+PUT /api/v1/setup/data-dir — change data dir (loopback)
|
|
|
+GET /api/v1/agentpacks — list installed packs
|
|
|
+GET /api/v1/agentpacks/{id} — pack detail + permission summary
|
|
|
+POST /api/v1/agentpacks/install — install from local zip (loopback)
|
|
|
+DELETE /api/v1/agentpacks/{id} — uninstall
|
|
|
+POST /api/v1/agentpacks/{id}/create-agent — create agent from pack
|
|
|
+```
|
|
|
+
|
|
|
+### Stats
|
|
|
+
|
|
|
+| | v1.0.0-rc2 | v1.1.0-rc1 |
|
|
|
+|---|---|---|
|
|
|
+| Python tests | 184 | 189 (+5 e2e) |
|
|
|
+| lambdagent exports | 81 | 197 |
|
|
|
+| Python lines | ~11,300 | ~13,500 |
|
|
|
+| Routes | 79 | 87 |
|
|
|
+
|
|
|
+### Migration from v1.0.0-rc2
|
|
|
+
|
|
|
+No DB schema changes. Restart the server after `git pull`.
|
|
|
+
|
|
|
+New env vars (all optional, sensible defaults):
|
|
|
+- `AGENTPAAS_DEPLOYMENT_MODE` — `desktop` (default) | `lab` | `paas`
|
|
|
+- `AGENTPAAS_AGENTPACKS_DIR` — override agentpacks install dir
|
|
|
+- `AGENTPAAS_TESTING=1` — disable auto-bootstrap in test harnesses
|
|
|
+
|
|
|
+### Known limitations (carried from rc2)
|
|
|
+
|
|
|
+The 8 `test_authenticate` failures (pre-existing) are a test harness issue —
|
|
|
+the `authenticate()` function works at runtime but the test fixtures do not
|
|
|
+fully wire the new PBKDF2 path. Fix targeted at v1.1.0.
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
## v1.0.0-rc2 — 2026-06-07
|
|
|
|
|
|
Second release candidate. Five post-rc1 commits closing **14 more audit
|