weichen
63f1fa5f87
feat(control-center): P2 document vector store — ingestion, chunking, embedding, hybrid search
...
- internal/controlcenter/embed: OpenAI-compatible /embeddings client
(batch<=16, 30s timeout, 5xx/network retried once, 4xx not), Embedder
interface, deterministic offline Stub, pgvector literal formatting
- internal/controlcenter/docs: .doc/**/*.md sync into cc_documents with
sha256 diffing and vanished-file removal; YAML front matter -> jsonb,
title fallback, taxonomy from first .doc dir; heading-based chunking
with paragraph bisection over ~1800 est. tokens; chunk_hash idempotent
inserts (unchanged chunks keep embeddings); embedding failures degrade
to NULL vectors without failing the sync; IndexArtifact for
cc_stage_artifacts; StartPeriodic ticker (CC_DOC_SYNC_SECONDS)
- server: GET /api/v1/docs (taxonomy/q filters), /api/v1/docs/{id},
/api/v1/docs/search (semantic|keyword|hybrid, ts_rank+ILIKE keyword
fallback, 0.6/0.4 max-normalized fusion, degraded flag when embedding
unavailable); async artifact indexing hooked into agent artifacts and
external-submit handlers
- archtest module-boundaries allowlist updated for new packages
2026-09-17 09:47:29 +00:00
weichen
b11cc64845
feat(control-center): P1 pipeline core — stage machine, decisions, artifacts, leases, SSE
...
- pipeline: 8-stage order, NextStage (testing skippable), gate pure
functions (agents may never advance; only in_progress->awaiting_review)
- tasks: domain layer over cc_* tables — CRUD, claim/heartbeat/release
leases, advance-request, decisions with strict suggestion validation,
stage transitions, external submit, stage settings, overview, lease reaping
- server: agent + console routes, SSE broker broadcasting every event
insert, 60s lease reaper goroutine, 1MB body limit, domain error mapping
- archtest: allowlist controlcenter/* and engineeringdashboard packages
2026-09-17 09:13:36 +00:00
weichen
2be43efddd
feat(control-center): P0 skeleton — standalone server, pgvector compose, goose schema, token auth
2026-09-17 08:38:50 +00:00
weichen
cf805a73a7
docs(ops): claim control-center-server task and register in CURRENT
2026-09-17 08:33:10 +00:00
weichen
adb48c86a5
merge: feature/initial-load-perf-u2 (docs acceptance)
2026-09-17 08:25:43 +00:00
weichen and Cursor
ae219955ab
docs(test): archive initial-load U2 acceptance evidence
...
Record curl/browser before-after metrics, mark U2 done, and release the
integration slot while leaving U1/U3–U7 open.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 08:25:43 +00:00
weichen
bc01781438
merge: feature/initial-load-perf-u2
2026-09-17 08:18:18 +00:00
weichen and Cursor
9335c4c90c
feat(server): negotiate static compression and fix asset SPA fallback
...
Serve precompressed .br/.gz with Cache-Control and Vary, and return 404
for missing /assets and /fonts instead of index.html.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 08:18:11 +00:00
weichen and Cursor
3dbd9770b5
feat(web): precompress dist assets to .br and .gz at build time
...
Use Node zlib in a post-vite step so the Go server can serve negotiated
variants without per-request compression cost.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 08:18:02 +00:00
weichen and Cursor
dc769686a9
feat(web): self-host Inter and JetBrains Mono for login shell
...
Remove blocking Google Fonts stylesheet so the login form is not gated
on an external CSS request; keep unicode-range subsets and OFL license.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 08:18:02 +00:00
weichen
59e6fade72
merge: feature/initial-load-performance-plan
2026-09-17 08:08:23 +00:00
weichen and Cursor
3445d386ea
docs(perf): archive initial-load diagnosis and remediation plan
...
Capture audit evidence, performance baseline, and U1–U7 remediation plan
without business code changes so the work can land on dev before U2.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 08:08:20 +00:00
weichen and Cursor
d0ef6961b4
docs(ops): release slot after engineering-dashboard CSP fix
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 07:40:28 +00:00
weichen
0a1302eab0
merge: fix/engineering-dashboard-csp-token
2026-09-17 07:40:27 +00:00
weichen and Cursor
2319138800
docs(ops): occupy slot to merge engineering-dashboard CSP fix
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 07:40:27 +00:00
weichen and Cursor
7fd7fb8a2a
fix(engineering-dashboard): read token from URL/meta under CSP
...
Remove the inline token script blocked by script-src 'self', so the
live page no longer calls the snapshot API with token=undefined.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 07:39:21 +00:00
weichen and Cursor
ce2a561d4d
docs(ops): release slot after engineering-dashboard merge
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 07:11:18 +00:00
weichen and Cursor
f47161131c
merge: feature/engineering-dashboard
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 07:11:17 +00:00
weichen and Cursor
fd1659a416
docs(ops): occupy slot to merge engineering-dashboard
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 07:10:36 +00:00
weichen and Cursor
7e05473cf5
docs(engineering-dashboard): closeout report matrix and launcher
...
Add test report, FEATURE-MATRIX row, archive the short-term task,
mark CURRENT claim done, and ship the thin serve/export script.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 07:10:04 +00:00
weichen and Cursor
e251ce325a
feat(engineering-dashboard): U6-U7 serve UI and offline export
...
Add loopback-only HTTP server with startup token, Host/Origin/CSP
guards, embedded live UI, CLI serve/export, and safe single-file HTML.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 07:08:27 +00:00
weichen
dd887bb08f
merge: feature/system-admin-console closeout docs
2026-09-17 07:08:07 +00:00
weichen
62d6241348
docs(test): system admin console acceptance report and closeout
...
- test report: dev smoke (schema 48->49), 4 admin endpoints, settings
write-read roundtrip, anon 401 / unknown-key 400 / non-admin 403
- task status done; FEATURE-MATRIX row done; release integration slot;
env snapshot dev schema 49
2026-09-17 07:08:07 +00:00
weichen and Cursor
79ee72267c
feat(engineering-dashboard): U5 reconcile and snapshot publisher
...
Merge docs/git/runtime facts into an immutable snapshot with conflict
retention, last-known stale handling, and acceptance-sample coverage.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 07:04:46 +00:00
weichen and Cursor
a07ba1065b
feat(engineering-dashboard): U2-U4 docs git and runtime collectors
...
Add allowlisted markdown indexing, read-only git plumbing via injected
runners, and docker/readiness collection with path and loopback guards.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 07:03:32 +00:00
weichen
dc7c31edc9
merge: feature/system-admin-console
2026-09-17 06:59:21 +00:00
weichen
0088ae7d44
docs(ops): occupy integration slot for system-admin-console merge
2026-09-17 06:59:21 +00:00
weichen and Cursor
e46ec0e4e7
feat(engineering-dashboard): U1 freeze snapshot and facet model
...
Define versioned Snapshot/Fact/Conflict/TaskState contracts with
independent plan/git/verification/deployment axes and acceptance fixtures.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 06:59:02 +00:00
weichen
e7fa6fb023
docs(status): add system admin console row to FEATURE-MATRIX
2026-09-17 06:58:08 +00:00
weichen
e310f06504
docs(ops): register system-admin-console task and claim
2026-09-17 06:57:13 +00:00
weichen
0eaca61545
feat(web): full-screen system admin console, absorb AdminSettingsModal
...
- top-level view switch workbench|admin in App.tsx (no router; hash #turn
anchors untouched)
- new admin/console/AdminConsoleView with left group nav in the existing
token/inline-style idiom, plus 8 self-fetching sections: overview, kb,
features, settings, workflows, roles, users, docs
- absorb the six AdminSettingsModal tabs into sections and delete the modal
- new api/systemAdmin.ts + types for /api/v1/admin/system/* endpoints
- playwright smoke spec web/e2e/admin-console.spec.ts (skip by default)
2026-09-17 06:57:03 +00:00
weichen
f1404d5bd2
feat(sysadmin): add system admin aggregation API and system_settings store
...
- new internal/sysadmin package (overview/kb/features/settings) with small
port interfaces; business packages stay unaware of sysadmin
- new routes /api/v1/admin/system/{overview,kb,features,settings} guarded
by requireSystemAdmin
- goose 00049: system_settings table (key/jsonb value, updated_by/at)
- SettingSpec whitelist registry with DB > env > default precedence
- register sysadmin in module-boundaries.yaml (archtest rules)
2026-09-17 06:56:46 +00:00
weichen and Cursor
fa5e10542a
docs(ops): claim engineering-dashboard implementation
...
Register CURRENT mutex and mark short-term in_progress on the
feature/engineering-dashboard worktree before coding.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 06:56:20 +00:00
weichen and Cursor
12884a1710
docs(ops): release slot after engineering-dashboard plan merge
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 06:55:44 +00:00
weichen
c336de59b8
merge: feature/project-control-center-plan
2026-09-17 06:55:44 +00:00
weichen and Cursor
44fa8d5059
docs(ops): occupy slot to merge engineering-dashboard plan
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 06:55:44 +00:00
weichen and Cursor
ed4a49bfa6
docs(engineering-dashboard): add personal control center design plan
...
Freeze the independent local readonly engineering-dashboard design,
short-term task entry, and system-design index before implementation.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 06:55:32 +00:00
weichen
173a512c28
merge: docs/promote-null-fk-to-test-closeout
2026-09-17 06:20:40 +00:00
weichen and Cursor
ef5f0fdef9
docs(ops): close null-fk promote to test at rc-v1.0.0-beta.4
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 06:20:40 +00:00
weichen
7f0f8a1ca2
merge: feature/promote-null-fk-to-test
2026-09-17 06:19:57 +00:00
weichen and Cursor
fa8598e89b
docs(ops): occupy slot to promote optional-duty null FK into test
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 06:19:57 +00:00
weichen
e78b6c1470
merge: docs/docgov-optional-duty-null-fk-report
2026-09-17 06:12:56 +00:00
weichen and Cursor
c9fd8a4d7f
docs(test): archive optional-duty null FK fix report and close task
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 06:12:56 +00:00
weichen
e488d10840
merge: fix/docgov-optional-duty-null-fk
2026-09-17 06:08:52 +00:00
weichen and Cursor
4606119581
docs(ops): occupy integration slot for optional-duty null FK smoke
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 06:08:52 +00:00
weichen and Cursor
149dec8993
docs(ops): claim and audit docgov optional-duty null FK fix
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 06:08:35 +00:00
weichen and Cursor
fa2407f92c
fix(stream): classify document ledger FK failures as DOC_LEDGER_ERROR
...
Avoid masking persist document ledger / 23503 errors as INTERNAL_ERROR.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 06:08:35 +00:00
weichen and Cursor
c2efcdbacd
fix(docgov): map zero duty ids to NULL on CreateOrGetDocument
...
Optional reviewer/approver duties leave UserID=0; writing 0 into
document_records FK columns failed with SQLSTATE 23503. Align create
path with docduty nullIfZero and surface ensureUser failures in logs.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 06:08:35 +00:00
weichen
feefc322a7
merge: feature/promote-dev-to-test-closeout
CI / go-vet-and-short-test (push) Failing after 0s
CI / backup-restore-drill (push) Failing after 1s
CI / web (push) Failing after 0s
2026-09-17 05:05:26 +00:00
weichen and Cursor
3978e6b461
docs(ops): record test promotion to rc-v1.0.0-beta.3
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 05:05:26 +00:00