Skip to content
Merged
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
4 changes: 2 additions & 2 deletions .env.example
Original file line number Diff line number Diff line change
Expand Up @@ -9,12 +9,12 @@ DEEPSEEK_API_KEY=
# DEEPSEEK_API_BASE_URL=https://api.deepseek.com

# Optional. Used only by `pnpm test:deepseek` local smoke tests.
# DEEPSEEK_SMOKE_MODEL=deepseek-chat
# DEEPSEEK_SMOKE_MODEL=deepseek-v4-flash

# Optional. Used only by `pnpm test:deepseek:briefing` local workflow smoke tests.
# The bundled evidence folder is SMOKE SAMPLE evidence for local verification only.
# Replace before operational use when pointing the workflow at real business evidence.
# DEEPSEEK_BRIEFING_SMOKE_MODEL=deepseek-chat
# DEEPSEEK_BRIEFING_SMOKE_MODEL=deepseek-v4-flash
# DEEPSEEK_BRIEFING_EVIDENCE_DIR=docs/templates/operations-briefing-smoke-evidence
# DEEPSEEK_BRIEFING_SMOKE_MAX_TOKENS=900

Expand Down
7 changes: 7 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,13 @@ jobs:
- name: Build desktop frontend
run: pnpm --filter @deepseek-agent-os/desktop build

- name: Run onboarding and settings contract tests
run: |
node scripts/settings-panel.test.mjs
node scripts/onboarding-readiness.test.mjs
node scripts/windows-installed-ui-smoke.mjs --self-test
node scripts/release-local-check.mjs --self-test

- name: Run Rust tests
env:
CARGO_TARGET_DIR: ${{ runner.temp }}\deepseek-agent-os-cargo-target
Expand Down
36 changes: 23 additions & 13 deletions CODE_SIGNING_POLICY.md
Original file line number Diff line number Diff line change
@@ -1,14 +1,20 @@
# Code signing policy

Last updated: 2026-07-18
Last updated: 2026-07-19

## Current status

DS Agent `v1.0.2` is unsigned. Windows may therefore display an unknown-publisher
warning for that historical release. The project is preparing an application
for the SignPath Foundation open-source program, but no DS Agent binary may be
represented as SignPath-signed until the application is approved and the
published artifact independently verifies as Authenticode `Valid`.
DS Agent `v1.1.0` is intentionally published unsigned. Both `ds-agent.exe` and
the Windows x64 NSIS installer are expected to report Authenticode `NotSigned`.
Windows may therefore display `Unknown publisher` or a Microsoft Defender
SmartScreen warning. Users should download only over HTTPS from the official
GitHub Release and verify the published SHA-256 before running the installer.

The SignPath Foundation application is submitted and approval is pending. No
DS Agent binary may be represented as SignPath-signed until the application is
approved and a later-version artifact independently verifies as Authenticode
`Valid`. The project will not replace the immutable `v1.1.0` tag or asset if
signing becomes available later.

For releases accepted into that program: **Free code signing provided by
[SignPath.io](https://signpath.io/), certificate by
Expand Down Expand Up @@ -51,13 +57,17 @@ them; guessed or placeholder identifiers are forbidden.

## Release verification

Before a signed installer is published, maintainers must verify both the
application executable and installer with Windows Authenticode. Evidence must
bind the exact source commit, file name, product version, byte size, SHA-256,
signer subject and certificate chain, timestamp, and `Valid` signature status.
The installer downloaded back from GitHub must match the reviewed release
asset. An invalid, missing, expired, unexpectedly issued, or unbound signature
stops publication.
For the unsigned `v1.1.0` exception, maintainers verify and disclose the actual
`NotSigned` status of both the application executable and installer. Evidence
must bind the exact source commit, file name, product version, byte size, and
SHA-256. The installer downloaded back from GitHub must match the reviewed
Release asset exactly. An unexpected signer, signature identity, hash, version,
source, or asset mismatch stops publication.

For any later release explicitly described as signed, maintainers must also
verify the expected signer subject, certificate chain, timestamp, and
Authenticode `Valid` status independently for both files. An invalid, missing,
expired, unexpectedly issued, or unbound signature stops that signed release.

## Project purpose and restrictions

Expand Down
34 changes: 20 additions & 14 deletions PRIVACY.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Privacy Policy

Last updated: 2026-07-18
Last updated: 2026-07-19

This policy describes the current published DS Agent desktop application and
public project. DS Agent is local-first and does not operate a project cloud
Expand All @@ -14,10 +14,13 @@ User-selected workspaces hold approved evidence, exports, reports, work
packages, screenshots, and other artifacts. This information is not silently
synced to a DS Agent-operated server.

The current stable `v1.0.2` reads a user-supplied DeepSeek API key from the
desktop process environment. The project does not provide a shared key. API
keys must not be written to events, logs, UI state, exports, screenshots, or
work packages.
The current stable `v1.1.0` accepts one user-supplied DeepSeek API key through
the onboarding screen and stores it in a dedicated Windows DPAPI-protected
local vault. A process-environment key remains an explicit compatibility
fallback and is never silently copied into that vault. The project does not
provide a shared key. The raw key exists in frontend memory only while it is
being entered and submitted; it must not be retained in UI state, events, logs,
exports, screenshots, work packages, or verification receipts.

Uninstalling the application may not delete a user-selected workspace or every
application-data file. Review and remove those local locations separately when
Expand All @@ -28,10 +31,12 @@ you no longer want to retain them.
DS Agent transfers information to networked systems only for work requested by
the user or person operating the application:

- **DeepSeek.** Model-backed work sends the user's prompt and the bounded
context selected for that request to the configured DeepSeek API. The
user-supplied API key is used for authentication. DeepSeek processes that
request under its [privacy policy](https://cdn.deepseek.com/policies/en-US/deepseek-privacy-policy.html).
- **DeepSeek.** Explicit credential verification contacts DeepSeek's balance
and model-list endpoints. Model-backed work sends the user's prompt and the
bounded context selected for that request to the configured DeepSeek API.
The user-supplied API key is used for authentication. DeepSeek processes
those requests under its
[privacy policy](https://cdn.deepseek.com/policies/en-US/deepseek-privacy-policy.html).
- **Web search and visited sites.** Source-linked web search can send the search
query to DuckDuckGo, a user-configured route, or an optional user-started
local bridge. Opening or submitting a requested web page sends normal
Expand All @@ -53,7 +58,7 @@ the user or person operating the application:
The optional local desktop bridge accepts only loopback addresses and is
started and controlled by the user. DS Agent does not install or supervise that
service. Production Microsoft and Google account registration and live
mail/calendar writes are disabled in `v1.0.2`; offline connector contracts do
mail/calendar writes are disabled in `v1.1.0`; offline connector contracts do
not authorize a production account or external write.

## What can be included in a model request
Expand All @@ -72,10 +77,11 @@ approval of a local action does not grant unrelated network authority.

## User choices

Users control whether to configure a DeepSeek key, request model-backed work,
run web search, open a web destination, import a remote skill source, or start
an optional local bridge. Remove the relevant credential or do not invoke the
network-backed capability to prevent that route from being used.
Users control whether to configure or remove a DeepSeek key, run its explicit
verification, request model-backed work, run web search, open a web destination,
import a remote skill source, or start an optional local bridge. Remove the
relevant credential or do not invoke the network-backed capability to prevent
that route from being used.

For a sensitive security or privacy issue, use
[GitHub Private Vulnerability Reporting](https://github.com/Lee-take/dsagent/security/advisories/new).
Expand Down
55 changes: 30 additions & 25 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,8 @@
</p>

<p align="center">
<a href="https://github.com/Lee-take/dsagent/releases/tag/v1.0.2">v1.0.2 stable</a> ·
<a href="https://github.com/Lee-take/dsagent/releases/download/v1.0.2/DS.Agent_1.0.2_x64-setup.exe">Download for Windows</a> ·
<a href="https://github.com/Lee-take/dsagent/releases/tag/v1.1.0">v1.1.0 stable</a> ·
<a href="https://github.com/Lee-take/dsagent/releases/download/v1.1.0/DS.Agent_1.1.0_x64-setup.exe">Download for Windows</a> ·
<a href="LICENSE">Apache-2.0</a>
</p>

Expand Down Expand Up @@ -155,7 +155,7 @@ high-risk action. See the full [model boundary](docs/AGENT_MODEL_BOUNDARY.md).
reconciliation contracts validated with offline adversarial fake providers.

Production Microsoft/Google account registration and live external-write
authority remain disabled in v1.0.2. The release does not sign in to real
authority remain disabled in v1.1.0. The release does not sign in to real
accounts, send real email, or create, change, or cancel real calendar events.

## Why Rust
Expand All @@ -168,28 +168,33 @@ remain thin; the Kernel and persistent projections own business state.

## Quick start

1. Download the [Windows x64 installer](https://github.com/Lee-take/dsagent/releases/download/v1.0.2/DS.Agent_1.0.2_x64-setup.exe).
2. Make your own valid `DEEPSEEK_API_KEY` available to the DS Agent process.
3. Choose one local workspace on first run.
1. Download the [Windows x64 installer](https://github.com/Lee-take/dsagent/releases/download/v1.1.0/DS.Agent_1.1.0_x64-setup.exe).
2. Enter your own valid DeepSeek API key in onboarding and run the explicit
balance/model verification. The key is stored locally with Windows DPAPI.
3. Choose one local workspace and let the readiness doctor verify its managed
directories and writability.
4. Describe the result you want in chat. DS Agent requests additional
permissions or prerequisites only when the task needs them.

A user-supplied DeepSeek API key is a required prerequisite. DS Agent does not
bundle a shared key or bypass DeepSeek access requirements; use remains subject
to DeepSeek's terms and account policies.

The v1.0.2 installer is currently unsigned, so Windows may display an
unknown-publisher warning. Read the [installation guide](docs/INSTALLATION.md)
before installing.
The v1.1.0 application executable and installer are Authenticode `NotSigned`.
Windows may display `Unknown publisher` or a Microsoft Defender SmartScreen
warning. Download only over HTTPS from this repository, verify the SHA-256 in
the GitHub Release, and read the [installation guide](docs/INSTALLATION.md)
before running the installer.

## Code signing policy

DS Agent `v1.0.2` remains unsigned. The project is preparing an open-source
signing application; no release is represented as signed until its application
executable and installer independently verify as Authenticode `Valid`. For
releases accepted into the program: **Free code signing provided by
SignPath.io, certificate by SignPath Foundation.** See the full
[code signing policy](CODE_SIGNING_POLICY.md) and [privacy policy](PRIVACY.md).
DS Agent `v1.1.0` is intentionally unsigned. The SignPath Foundation application
is submitted and approval is pending; no release is represented as signed.
If the project is accepted, signing starts with a later new version and does not
replace this immutable tag or asset. For releases accepted into the program:
**Free code signing provided by SignPath.io, certificate by SignPath
Foundation.** See the full [code signing policy](CODE_SIGNING_POLICY.md) and
[privacy policy](PRIVACY.md).

### Build from source

Expand All @@ -204,22 +209,22 @@ example `D:\build-target\ds-agent-v1-release`.

## Stable release

- Release: [DS Agent v1.0.2](https://github.com/Lee-take/dsagent/releases/tag/v1.0.2)
- Installer: `DS.Agent_1.0.2_x64-setup.exe`
- Size: `12,714,353 bytes`
- SHA-256: `21459D5A8CFF2606171CBD52B9D5508A40434101693BEFA81E8DC2D9EBF50E3D`
- Fix: approvals now stay with their owning task, and one task with several
permissions needs only one confirm-or-reject decision.
- Validation: source secret scan, production frontend build, Node/UI checks,
and 852 Rust tests with 845 passed, seven permission-gated live/GUI tests
intentionally ignored, and zero failed.
- Release: [DS Agent v1.1.0](https://github.com/Lee-take/dsagent/releases/tag/v1.1.0)
- Installer: `DS.Agent_1.1.0_x64-setup.exe`
- Integrity: verify the final byte size and SHA-256 published in the GitHub
Release before running the installer.
- Onboarding: one user-supplied Key, Windows DPAPI storage, explicit DeepSeek
balance/V4 model verification, secret-free readiness, and workspace doctor.
- Compatibility: existing workspace settings remain readable; environment-key
operators require explicit verification; conversations and connector vaults
are not rewritten.

## Documentation

- [Installation](docs/INSTALLATION.md)
- [DS Agent and DeepSeek boundary](docs/AGENT_MODEL_BOUNDARY.md)
- [v1 architecture](docs/architecture/DS_AGENT_V1_ARCHITECTURE_PLAN.md)
- [v1.0.2 release notes](docs/RELEASE_NOTES_v1.0.2.md)
- [v1.1.0 release notes](docs/RELEASE_NOTES_v1.1.0.md)
- [v1 completion audit](docs/DS_AGENT_V1_COMPLETION_AUDIT.md)
- [Security](SECURITY.md) · [Privacy](PRIVACY.md) ·
[Code signing policy](CODE_SIGNING_POLICY.md) ·
Expand Down
42 changes: 23 additions & 19 deletions README.zh-CN.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,8 @@
</p>

<p align="center">
<a href="https://github.com/Lee-take/dsagent/releases/tag/v1.0.2">v1.0.2 正式稳定版</a> ·
<a href="https://github.com/Lee-take/dsagent/releases/download/v1.0.2/DS.Agent_1.0.2_x64-setup.exe">下载 Windows 安装包</a> ·
<a href="https://github.com/Lee-take/dsagent/releases/tag/v1.1.0">v1.1.0 正式稳定版</a> ·
<a href="https://github.com/Lee-take/dsagent/releases/download/v1.1.0/DS.Agent_1.1.0_x64-setup.exe">下载 Windows 安装包</a> ·
<a href="LICENSE">Apache-2.0</a>
</p>

Expand Down Expand Up @@ -138,7 +138,7 @@ DeepSeek 可以提出动作,DS Agent 决定动作是否安全、是否允许
- 已通过离线对抗性 fake provider 验证的 Microsoft/Google 形态邮件、日历、同步、草稿、
外部变更和对账契约。

v1.0.2 仍未开放生产 Microsoft/Google 账号注册和真实外部写入权限。当前正式版不会登录
v1.1.0 仍未开放生产 Microsoft/Google 账号注册和真实外部写入权限。当前正式版不会登录
真实账号、发送真实邮件,也不会创建、修改或取消真实日历事件。

## 为什么使用 Rust
Expand All @@ -149,24 +149,28 @@ command 与 React UI 保持薄层,业务状态由 Kernel 和持久投影统一

## 快速开始

1. 下载 [Windows x64 安装包](https://github.com/Lee-take/dsagent/releases/download/v1.0.2/DS.Agent_1.0.2_x64-setup.exe)。
2. 让 DS Agent 进程能够读取你自己的有效 `DEEPSEEK_API_KEY`。
3. 首次运行时选择一个本地工作目录。
1. 下载 [Windows x64 安装包](https://github.com/Lee-take/dsagent/releases/download/v1.1.0/DS.Agent_1.1.0_x64-setup.exe)。
2. 在首次设置中输入你自己的有效 DeepSeek API Key,并显式验证余额和模型;Key 使用
Windows DPAPI 保存在本机。
3. 选择一个本地工作目录,由 readiness doctor 检查受管目录和可写状态。
4. 在聊天中描述你希望完成的结果;只有任务确实需要时,DS Agent 才会请求额外权限或
前置条件。

用户自行提供有效的 DeepSeek API Key 是必备前提。DS Agent 不内置共享 Key,也不会
绕过 DeepSeek 的访问条件;实际使用仍须遵守 DeepSeek 的服务条款和账号规则。

v1.0.2 安装包目前尚未签名,Windows 可能显示“未知发布者”提示。安装前请阅读
v1.1.0 应用程序和安装包的 Authenticode 状态均为 `NotSigned`。Windows 可能显示
`Unknown publisher`(未知发布者)或 Microsoft Defender SmartScreen 警告。请只通过
本仓库的 HTTPS 链接下载,运行前核对 GitHub Release 中的 SHA-256,并阅读
[安装指南](docs/INSTALLATION.md)。

## Code signing policy(代码签名政策)

DS Agent `v1.0.2` 仍未签名。项目正在准备开源签名申请;只有应用程序和安装包都独立回读为
Authenticode `Valid`,才会将对应 Release 声明为已签名。获准加入该计划的 Release 将遵循:
**Free code signing provided by SignPath.io, certificate by SignPath Foundation.**
完整说明见[代码签名政策](CODE_SIGNING_POLICY.md)和[隐私政策](PRIVACY.md)。
DS Agent `v1.1.0` 是如实披露的未签名版本。SignPath Foundation 申请已经提交、仍在等待
审批,本版本不会被描述为已签名。若以后获批,只从后续新版本开始签名,不替换本版本不可
移动的 tag 或资产。获准加入该计划的 Release 将遵循:**Free code signing provided by
SignPath.io, certificate by SignPath Foundation.** 完整说明见
[代码签名政策](CODE_SIGNING_POLICY.md)和[隐私政策](PRIVACY.md)。

### 从源码运行

Expand All @@ -181,20 +185,20 @@ npx pnpm@9.15.9 --filter @deepseek-agent-os/desktop tauri:dev

## 正式稳定版

- Release:[DS Agent v1.0.2](https://github.com/Lee-take/dsagent/releases/tag/v1.0.2)
- 安装包:`DS.Agent_1.0.2_x64-setup.exe`
- 大小:`12,714,353 bytes`
- SHA-256:`21459D5A8CFF2606171CBD52B9D5508A40434101693BEFA81E8DC2D9EBF50E3D`
- 修复:审批只跟随所属任务;同一任务需要多项权限时,只需一次确认或拒绝
- 验证:源文件密钥扫描、前端 production build、全部 Node/UI 检查以及 852 项 Rust
测试;845 项通过,7 项需要额外权限的 live/GUI 测试按设计忽略,0 项失败
- Release:[DS Agent v1.1.0](https://github.com/Lee-take/dsagent/releases/tag/v1.1.0)
- 安装包:`DS.Agent_1.1.0_x64-setup.exe`
- 完整性:运行安装包前,核对 GitHub Release 中发布的最终字节数和 SHA-256。
- 首次设置:单一用户 Key、Windows DPAPI 本机存储、显式 DeepSeek 余额/V4 模型验证、
无密 readiness 和 workspace doctor
- 兼容性:既有 workspace 设置继续可读;环境 Key 需要显式验证;不会重写历史会话或
connector vault

## 文档

- [安装指南](docs/INSTALLATION.md)
- [DS Agent 与 DeepSeek 的工作边界](docs/AGENT_MODEL_BOUNDARY.md)
- [v1 架构计划](docs/architecture/DS_AGENT_V1_ARCHITECTURE_PLAN.md)
- [v1.0.2 发布说明](docs/RELEASE_NOTES_v1.0.2.md)
- [v1.1.0 发布说明](docs/RELEASE_NOTES_v1.1.0.md)
- [v1 完成审计](docs/DS_AGENT_V1_COMPLETION_AUDIT.md)
- [安全说明](SECURITY.md) · [隐私政策](PRIVACY.md) ·
[代码签名政策](CODE_SIGNING_POLICY.md) · [参与贡献](CONTRIBUTING.md) ·
Expand Down
Loading