agent-bot
375c5a42db
test(config): force permission bits in perms test (umask-proof)
...
CI / backup-restore-drill (pull_request) Successful in 34s
CI / web (pull_request) Successful in 32s
CI / go-vet (pull_request) Failing after 39s
os.WriteFile mode is masked by umask (022 in CI turns 0666 into 0644),
making the writable-file rejection test environment-dependent; chmod the
explicit bits after write
2026-09-29 09:12:02 +00:00
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
679028e44e
feat(cli): 'config explain' with per-key layer attribution (U10b slice 1)
...
CI / go-vet (pull_request) Successful in 13s
CI / short-tests-report (pull_request) Failing after 35s
CI / backup-restore-drill (pull_request) Successful in 25s
CI / web (pull_request) Successful in 31s
- config.Explain(envFiles, cliOverrides): per-key source layer following the
application precedence cli > process-env > env-file > default; registry is
reporting-only (values still applied solely by Load); secrets never shown
- ParseEnvFileKeys shares applyEnvFile's parsing rules
- cmd/server 'config explain' resolves the same env-file stack as Load and
renders the attribution table; smoke: HTTP_PORT/AGENT_BACKEND -> cli
- tests: registry liveness sample + layer attribution (file/process/cli/
default) + secret masking
- full per-field snapshot with applied/desired revisions remains U10b core
2026-09-29 07:39:28 +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
e9c0281404
feat(ctxmgr): wildcard session allowlist for semantic replace rollout
...
- SEMANTIC_SUMMARY_REPLACE_SESSIONS supports * (all sessions, present and
future), mirroring INTENT_PLAN_PROJECT_ALLOWLIST; empty allowlist still
replaces nothing (fail-closed defense in depth unchanged)
- declare SEMANTIC_SUMMARY_REPLACE(_SESSIONS) in dev/test/main compose app
env (stale Wave2 "REPLACE unwired" comment fixed); extend A-4 declaration
test; .env.example key docs updated
- sysadmin feature catalog: SESSIONS description + REPLACE reason note *
Prepares dev degraded-flags enable (task degraded-flags-enable-2026-09-26-r4):
user-authorized all-session replace, plan tier confirm, shadow summary, PI
change-report narrative; env ops and runtime verification follow.
2026-09-26 02:29:29 +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
3e01f18756
merge: integrate final-artifact-vault into local_dev (authorized exception)
...
User authorized lifting CURRENT FAV whole-branch merge protection on
2026-09-23. Keep FAV_DEGRADED_READ/FAV_PUBLISHER_ENABLED default false.
Drop duplicate goose 00034 (local_dev already has 00036). Preserve
agentx workspace admin routes and pin-export wiring.
2026-09-23 13:57:08 +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
8b84ee4ecf
chore(config): declare WORKFLOW_SCOPE_MODE with a strict default
...
The flag reaches all three compose app services and the sysadmin catalog, and unknown values stay on the existing hard block.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-21 09:26:03 +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
a41836dec0
fix(intent,sysadmin): delete dead SEMANTIC_FALLBACK_ENABLED flag (X-1)
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-18 04:02:18 +00:00
weichen and Cursor
8d97dd6b18
test(config): add compose flag declaration regression tests
...
Pin E-3/E-4/E-6 compose declarations so dead runner config and missing
flag wiring cannot silently regress.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-18 02:26:47 +00:00
weichen and Cursor
e286fca71b
fix(server): fail-closed chat import when Env is empty
...
Drop Env==\"\" as a dev alias; pin compose app/events ENV alignment and
main depends_on events with unit tests.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 17:03:08 +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
ad9b67d599
feat(artifactvault): close same-tx staging, recover-apply, and GET zero-write gaps
...
Approve/commit now write FAV staging in the domain transaction, recover-apply materializes scratch collections, and unpublished or GET paths cannot mutate the registry.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-14 12:52:28 +00:00
weichen and Cursor
8ea12de732
feat(api): wire FAV ingest, optional degraded GET, and scratch CLI
...
Keep FAV_DEGRADED_READ off by default and mount an independent vault volume beside runtime data.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-14 10:51:33 +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