agent-bot
2ad1ef393a
feat(bootstrap): instance identity, single-start lock, root checks (U10c slice 1)
...
CI / backup-restore-drill (pull_request) Successful in 27s
CI / web (pull_request) Successful in 32s
CI / go-vet (pull_request) Successful in 14s
CI / short-tests-report (pull_request) Failing after 36s
- internal/bootstrap.EnsureInstance on the serve path: normalized writable
roots, symlink-aware validation, data-root vs vault containment rejection,
filesystem-root refusal
- instance-marker.json in data root: first boot creates; foreign instance
ID fails closed (explicit adopt/migrate required, KTD18)
- instance.lock non-blocking flock detects duplicate starts locally without
any governance tooling; ownership held until process exit
- Config.InstanceID (INSTANCE_ID env/file key; default 'default') joins the
instance-settings bootstrap denylist (identity cannot be self-overwritten)
- auth is Bearer+localStorage per origin (no cookies) - browser isolation
holds across ports; documented in the unit template
- deploy/systemd/agent-system@.service template (instance %i: env file,
DATA_DIR, hardened service scope)
- tests: marker create/foreign reject, vault overlap, invalid IDs, root
refusal, in-process duplicate-start detection
2026-09-29 08:32:15 +00:00
agent-bot
28a2c8ca2b
feat(config): instance-settings fifth layer (U10b core 2, KTD16/17)
...
CI / go-vet (pull_request) Successful in 14s
CI / short-tests-report (pull_request) Failing after 36s
CI / backup-restore-drill (pull_request) Successful in 26s
CI / web (pull_request) Successful in 31s
- <config_root>/instance-settings.json is the final config layer:
default > env-file(s) > process-env > cli > instance-settings
- LoadForServe wires the CLI mutation hook BEFORE instance settings;
serve/check/explain all use it; plain Load keeps legacy behavior
- bootstrap denylist (env) fails closed (no self-locating file loop);
SETTINGS_MODE=ignore skips the layer as the recovery path
- reflection-based typed application: string/int/bool/duration(string or
seconds)/string-array; unknown fields and type mismatches fail closed
- group/world-writable settings file rejected; absent key = inherit
- sources table gains the instance-settings layer; e2e smoke verified
(override applies; ignore-mode reverts to default)
2026-09-29 08:17:21 +00:00
agent-bot
93ab4802e9
feat(config): field-level source attribution via layer snapshots (U10b core 1/2)
...
CI / go-vet (pull_request) Successful in 13s
CI / short-tests-report (pull_request) Failing after 36s
CI / backup-restore-drill (pull_request) Successful in 37s
CI / web (pull_request) Successful in 32s
- LoadWithSources: reflection snapshots at layer boundaries (default ->
env-file per file -> process-env incl. DSN/CORS/KB normalization); diff
yields exact per-field source - no manual key registry, no drift
- Load unchanged signature/behavior (wrapper); ApplyCLIOverlay records the
cli layer on a cloned config
- 'config explain' upgraded to field table (59 fields; source + set flag
only, values never printed per KTD17)
- replaces the reporting-only key registry from PR #12
- tests: layer attribution (file/process override), cli overlay, Load regression
2026-09-29 08:06:06 +00:00
agent-bot
2235fc7230
feat(cli): 'config check' subcommand (U10a tail, KTD16/17 minimal)
...
CI / go-vet (pull_request) Successful in 13s
CI / short-tests-report (pull_request) Failing after 36s
CI / backup-restore-drill (pull_request) Successful in 29s
CI / web (pull_request) Successful in 32s
- server config check: load + validate + masked summary; exit 1 on issues
- no side effects: creates no DB, starts nothing, writes no business dirs
- Config.Check() (production secrets, port range, data dir) exported for
reuse; MaskedSummary never prints credential values
- default no-arg invocation unchanged (serve); help added
- smoke-verified: pass exit 0, invalid port exit 1 with issue line
- layer-source attribution (config explain) deferred to U10b ConfigSnapshot
2026-09-29 07:25:28 +00:00
weichen
45f21e84c7
feat(jevdecide): product shadow client with offline eval gates
...
Add typed jevdecide HTTP client (circuit, metrics) and coordinator
DecideAssist wiring behind JEV_DECIDE_MODE (default off). Offline eval
and synthetic soak evidence gate realtime/profile before assist rollout.
2026-09-23 17:40:40 +00:00
weichen
6032dbaa16
merge: integrate go-agentx runtime into local_dev candidate
...
Bring pinative/agentx workspace registry and A-B harness onto current
local_dev; renumber goose agentx registry 00062→00066 to avoid clash
with chat-summary/provenance migrations. Keep CURRENT/MATRIX as ours
for later docs apply; union module-boundaries agentx import tree.
Path literals use workspace constants for arch-check.
2026-09-23 13:25:32 +00:00
WeiCHEN
08af12b936
merge: feature/g2-g3-exception-clearance-2026-09-22
...
Keep G1 cleared sql_write; land G2/G3 path clearances; baseline to zero.
2026-09-22 22:08:53 +08:00
WeiCHEN
684008e3a5
feat(trace): strengthen T2/T3 evidence and access-log design
2026-09-22 21:51:19 +08:00
WeiCHEN
7d51e40b1c
refactor(boundaries): clear data/dev path leaks; start output.md via DeliverableKey
...
Remove coordinator/bizdev/storage data/dev fallbacks and register
agent→workspace so default agent targets use workspace.DeliverableKey.
Remaining U5 path and G3 task_runs clearance stay open.
2026-09-22 21:44:57 +08:00
weichen
738bbe1579
feat(agent): add pi-native backend and drop cursor-cli
...
Keep the container pi-agent backend as the default while the in-process runtime is available beside it, and remove the unused cursor bridge.
2026-09-21 14:52:53 +00:00
weichen and Cursor
983b785cd6
feat(config): wire MinerU and material RAG settings
...
Add MINERU_* / MATERIAL_* to config loader, .env.example, and
compose env passthrough. Secrets stay in local .env only.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-21 08:29:10 +00:00
weichen and Cursor
cdbf9cab63
fix(config): layer root .env over configs/.env.{ENV} for KB auth
...
Stop using a fake default KB password; merge Compose-style env files and
rewrite compose DNS to localhost on the host so go test/E2E authenticate.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 02:03:07 +00:00
weichen and Cursor
3478a5a05a
feat(config): add FAV vault flags defaulting off
...
Gate FAV_DEGRADED_READ and FAV_PUBLISHER_ENABLED behind explicit opt-in,
and refuse VAULT_STATE_ROOT colliding with runtime data/{env}.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-16 15:40:10 +00:00
weichen and Cursor
fe0bb3a503
fix(config): layer root and env compose files with expanded overrides
...
Load agent/cursor env overrides in config loader; pass root .env plus
environment-specific env files in env-service; align compose env_file mounts.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-13 02:55:18 +00:00
weichen and Cursor
c60599379f
fix(agent): 将 pi-agent 默认模型对齐为 MiniMax-M2.7-highspeed
...
根因是 Go 默认 provider 误为 cc-switch-kimi-for-coding,且 app 容器未注入 PI_AGENT_*,导致 runner 收到未知 provider。
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-13 02:50:23 +00:00
weichen and Cursor
5856585d1d
feat(ops): compose runner auth, upload MIME validation, and test soak
...
Wire RUNNER_AUTH_TOKEN through dev/test/main Compose, validate uploads
with extension whitelist and content sniffing, add readiness soak script
and short PG loop test, and require runner token in prod when URL is set.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-13 02:50:23 +00:00
weichen and Cursor
d7a144de26
feat(taskrun): resume interrupted runs and harden P1 security gaps
...
Add confirm-gated resume API with resumable flag, Phase 5 finalize fault
and rolling-restart replay tests, Mermaid strict mode, request body limits,
and optional Runner Bearer auth between app and pi-agent.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-13 02:50:23 +00:00
weichen
171959710d
fix(security): add CORS allowlist and enforce principal on chat handlers
...
Replace wildcard CORS with configured origins and bind chat/task user
identity to the authenticated principal instead of request body fields.
2026-09-13 02:50:22 +00:00
weichen
3145550a59
feat(security): complete P0 release blocking remediation
...
Unify auth middleware and remove X-User-ID trust, add project_members
authorization, sandbox workspaces via resolver, and admin-only reconcile
by run_id. Introduce goose migrations with startup schema gate, fail closed
when DB unavailable outside explicit ALLOW_IN_MEMORY, bundle web/dist in
app Dockerfile, and remove frontend pseudo-login fallback.
2026-09-13 02:50:22 +00:00
WeiCHEN and Cursor
f4e4357ddb
fix(agent): Chat Agent 全链路 P0-P5 整改
...
封堵鉴权旁路与导出 IDOR,DocGov 改服务端身份;对话层 PendingAction 接真实 docgov/taskrun;修复流式租约假死与会话级任务流;加固配置/doc_id/NULL;补齐 slog 与测试;前端 ErrorBoundary 与受控文档重试。
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-13 02:50:22 +00:00
WeiCHEN
e5e80a6fc6
feat(core): update backend coordinator, docgov lease, squad workflow and web governance integration
2026-09-13 02:50:20 +00:00
WeiCHEN and Cursor
6c9ad6b61d
feat(auth): add auth data models, config and store engine
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-13 02:50:20 +00:00
WeiCHEN and Cursor
f769f8da4c
feat(db): 部署专属记忆与多级上下文数据库容器与pgvector初始化Schema
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-13 02:50:19 +00:00
WeiCHEN and Cursor
810eb26be3
feat(api): 实现HTTP服务骨架与Server-Sent Events流式交互接口
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-13 02:50:19 +00:00
WeiCHEN and Cursor
7cbfb33150
feat(service): 实现嵌入式多领域知识中枢与Hybrid RRF检索引擎
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-13 02:50:19 +00:00
WeiCHEN and Cursor
f75e5094a2
feat(squad): 实现单步评估器StepEvaluator与工作流动态加步、跳步及基准假设推断
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-13 02:50:19 +00:00
WeiCHEN and Cursor
b36a9ee108
feat(agent): support PI_AGENT_RUNNER_URL remote execution in PiAgentBackend
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-13 02:50:18 +00:00
WeiCHEN and Cursor
68d58df38f
chore(config): initialize go module and configuration loader
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-13 02:50:18 +00:00