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
2abc23ac65
feat(db,server): T20-S2 hardening batch B1/B4/B7 (XFF trust, pool statement_timeout, shutdown drain)
2026-09-25 04:45:49 +00:00
weichen
b812d1d30f
feat(dev): single-binary no-docker runtime with managed localpg
...
Embed web/dist, run events in-process, manage brew PG18+pgvector, add PI host sidecar and launch --no-docker; unify MiniMax-M2.7-highspeed pins and record dev acceptance.
2026-09-24 15:53:50 +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
ad96f67442
refactor(workflowdef): make definition/runtime deps unidirectional
...
Keep registry key validation local to workflowdef with composition-root
injection, adapt FlatCatalog for projectworkflow, and drive the
orchestrator through LiveInstancePort views instead of projectinstance.
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
c0e7df5abf
feat(docgov): expose proposal HTTP and wire frontend decide flow
...
Add POST /api/v1/docgov/proposal for ProposeModification, harden decide
status mapping, and replace App pendingProposal local mock with real API calls.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 14:07:52 +00:00
weichen and Cursor
84c0841acb
feat(app): add composition root, stageflow, ContextUpdate, and SSE transport
...
Move construction and document OnOutbox out of server, give HTTP/CLI a shared task use case, and block already-cleared import/event arch rules.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-15 05:40:15 +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
2a6dd442bb
feat(server): 新增会话列表、多轮历史消息查询与标杆案例语义检索 RESTful API
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-13 02:50:19 +00:00
WeiCHEN and Cursor
8b942d0460
feat(stream): add governance event and lightweight progress summary protocol
...
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