github-actions[bot]
c403ef7920
chore(release): 7.43.0-dev.8 [skip ci]
2026-02-12 23:41:44 +00:00
Tam Nhu Tran
fca5ca203f
docs(guidelines): add AGENTS symlink and neutral wording
2026-02-13 06:40:28 +07:00
github-actions[bot]
9aca2290c0
chore(release): 7.43.0-dev.7 [skip ci]
2026-02-12 23:34:32 +00:00
Kai (Tam Nhu) Tran and GitHub
359e4c6c5d
Merge pull request #551 from kaitranntt/kai/fix-analytics-responsive-alignment
...
fix(analytics): stabilize responsive row alignment
2026-02-13 06:33:21 +07:00
Tam Nhu Tran
0cc1f111f7
fix(analytics): stabilize responsive row alignment
2026-02-13 06:28:46 +07:00
github-actions[bot]
43d441ce23
chore(release): 7.43.0-dev.6 [skip ci]
2026-02-12 22:39:25 +00:00
Kai (Tam Nhu) Tran and GitHub
3db78450ae
Merge pull request #550 from kaitranntt/kai/feat/531-535-cursor-streaming-schema
...
feat(cursor): namespace FIELD constants and implement true streaming SSE (#531 , #535 )
2026-02-13 05:38:17 +07:00
Tam Nhu Tran
36a67c4837
fix(cursor): close ReadableStream controller on abort to prevent consumer hangs
...
When abort fires after streaming begins, onAbort closed HTTP/2 handles
but never closed the ReadableStream controller. Consumers waiting on
reader.read() could hang indefinitely since end/error handlers were
gated by streamClosed flag.
Hoist controller reference to outer scope so abort handler can close it.
2026-02-13 05:33:56 +07:00
Tam Nhu Tran
ca7bb23970
test: use getCcsDir() instead of os.homedir() for test isolation
...
GlmtTransformer and Beta Channel tests used hardcoded os.homedir()
paths which fail when CCS_HOME is set by other tests in full suite.
2026-02-13 05:23:23 +07:00
Tam Nhu Tran
27badb2584
fix(cursor): validate fetch status before streaming fallback and register abort early
...
- Check response.status before calling transformProtobufToSSE in fetch fallback
- Move abort signal registration before response headers to handle early cancellation
2026-02-13 04:21:13 +07:00
Tam Nhu Tran
4e5b502fc9
feat(cursor): namespace FIELD constants and implement true streaming SSE ( #531 , #535 )
2026-02-13 04:12:29 +07:00
github-actions[bot]
52e04f5cf3
chore(release): 7.43.0-dev.5 [skip ci]
2026-02-12 09:22:23 +00:00
Kai (Tam Nhu) Tran and GitHub
a2520d2ed8
Merge pull request #543 from kaitranntt/kai/feat/538-stream-d-hardening
...
chore(hardening): add debt inventory and async I/O kickoff (stream D)
2026-02-12 16:21:18 +07:00
Kai (Tam Nhu) Tran and GitHub
db94e7223a
Merge pull request #544 from kaitranntt/kai/feat/538-stream-c-provider-cliproxy-web
...
refactor(cliproxy): centralize provider capability registry (stream C)
2026-02-12 16:21:05 +07:00
Kai (Tam Nhu) Tran and GitHub
b8352a2a79
Merge pull request #546 from kaitranntt/kai/feat/538-stream-b-command-config
...
refactor(commands): add command contract and migrate shell-completion (stream B)
2026-02-12 16:20:50 +07:00
Kai (Tam Nhu) Tran and GitHub
e0190c3993
Merge pull request #545 from kaitranntt/kai/feat/538-stream-a-foundation
...
chore(maintainability): add baseline metrics gate (stream A)
2026-02-12 16:20:36 +07:00
Tam Nhu Tran
851f870fa8
fix(test): avoid global ui mock leakage in shell completion tests
2026-02-12 15:52:52 +07:00
Tam Nhu Tran
ae83be1590
fix(format): align image analysis check with pinned prettier
2026-02-12 15:22:37 +07:00
Tam Nhu Tran
65a1d8ae2c
fix(hardening): handle regex literals after else/do
2026-02-12 15:20:22 +07:00
Tam Nhu Tran
9585f0664d
chore(format): apply prettier fixes for validate gate
2026-02-12 15:20:09 +07:00
Tam Nhu Tran
33e9a88494
fix(maintainability): harden tracked scan and baseline checks
2026-02-12 15:01:33 +07:00
Tam Nhu Tran
bb9d846a54
fix(hardening): handle regex literals in sync-call scanner
2026-02-12 15:01:33 +07:00
Tam Nhu Tran
b7481cf346
fix(maintainability): require git-tracked scan for gate
2026-02-12 14:50:54 +07:00
Tam Nhu Tran
8193e9d67f
fix(hardening): ignore literal text in sync-call metrics
2026-02-12 14:45:24 +07:00
Tam Nhu Tran
8f0ba481ed
fix(maintainability): scan tracked src files for stable gate
2026-02-12 14:40:45 +07:00
Tam Nhu Tran
d21b5c44ee
fix(hardening): count executable sync fs call sites
2026-02-12 14:40:45 +07:00
Tam Nhu Tran
b98335c162
fix(commands): await async command validation
2026-02-12 14:18:48 +07:00
Tam Nhu Tran
2610971d2e
fix(maintainability): enforce gate and correct loc metric
2026-02-12 14:18:48 +07:00
Tam Nhu Tran
924e3686c8
refactor(cliproxy): centralize provider capability registry
2026-02-12 12:59:17 +07:00
Tam Nhu Tran
fc4b77bc52
refactor(commands): add command contract and migrate shell completion
2026-02-12 12:59:17 +07:00
Tam Nhu Tran
cefb564948
chore(hardening): add debt inventory and async io kickoff
2026-02-12 12:57:46 +07:00
Tam Nhu Tran
975c864f94
chore(maintainability): add baseline metrics gate
2026-02-12 12:57:24 +07:00
github-actions[bot]
e68ae5b166
chore(release): 7.43.0-dev.4 [skip ci]
2026-02-12 04:40:14 +00:00
Kai (Tam Nhu) Tran and GitHub
f92cea946c
Merge pull request #528 from kaitranntt/kai/feat/521-cursor-config-dashboard
...
feat(cursor): integrate cursor provider into config, dashboard, and reserved names
2026-02-12 11:39:05 +07:00
Tam Nhu Tran
4b7de69d9b
fix(config): serialize cursor section in generateYamlWithComments
...
- Add cursor section serialization after copilot, before global_env
- Fixes P1 data loss: cursor settings now persist to config.yaml
- Previously cursor was merged in memory but never written to disk
2026-02-12 11:35:39 +07:00
Tam Nhu Tran
1d8d3d7671
chore: sync with dev after PR #527 merge
2026-02-12 11:01:10 +07:00
github-actions[bot]
f6400b4bf9
chore(release): 7.43.0-dev.3 [skip ci]
2026-02-12 03:49:10 +00:00
Kai (Tam Nhu) Tran and GitHub
b405f3af61
Merge pull request #527 from kaitranntt/kai/feat/520-cursor-daemon-cli
...
feat(cursor): add daemon lifecycle manager and CLI command
2026-02-12 10:48:05 +07:00
Tam Nhu Tran
bfc9361701
fix(cursor): fix router fall-through, add daemon marker, use random test port
...
- Route all `ccs cursor *` to handleCursorCommand (no profile-switching)
- Add --ccs-daemon marker to spawned process for stable PID validation
- Use random port in lifecycle integration test to prevent CI conflicts
- Remove unnecessary .toFixed(1) on integer tokenAge
2026-02-12 08:37:01 +07:00
Tam Nhu Tran
760a5c3ca4
fix(cursor): harden stopDaemon PID validation, tighten regex, add lifecycle test
...
- Validate PID belongs to cursor daemon via /proc before signaling
- Tighten detectProvider regex to avoid over-matching o-prefixed models
- Add integration test for daemon start→health→stop lifecycle
- Add void cast on discarded handleHelp() return value
- Update model catalog date comment
2026-02-12 08:28:32 +07:00
Tam Nhu Tran
934238740e
fix(cursor): export missing symbols, eliminate subcommand sync risk, improve tests
...
- Export detectProvider and formatModelName from barrel index
- Export CURSOR_SUBCOMMANDS from cursor-command.ts, import in ccs.ts
- Use getCcsDir() in tests instead of manual path construction
- Add handleCursorCommand routing test for unknown subcommand
2026-02-12 08:21:39 +07:00
Tam Nhu Tran
cda037e7e5
fix(cursor): clean up PID file on startDaemon failure and improve daemon robustness
...
- Add removePidFile() in safeResolve on failure to prevent stale PIDs
- Only send SIGKILL in stopDaemon if SIGTERM wait loop exhausted
- Check isDaemonRunning before model fetch to avoid 5s timeout
- Add port validation unit tests for startDaemon
2026-02-12 08:11:41 +07:00
Tam Nhu Tran
d7e0d1cacf
fix(cursor): pass all args to handler, use getCursorConfig in routes
...
- Route all cursor args to handler for proper unknown-subcommand reporting
- Replace loadOrCreateUnifiedConfig + fallback with getCursorConfig()
2026-02-12 08:04:42 +07:00
Tam Nhu Tran
887efa4069
fix(cursor): show auto-detect error message, add subcommand sync comment
2026-02-12 07:59:39 +07:00
Tam Nhu Tran
f9834c81c9
fix(cursor): add enabled field to tests, simplify cursor routing
...
- Add missing enabled field to CursorConfig in test assertions
- Consolidate duplicate dynamic import in ccs.ts cursor routing
2026-02-12 07:55:35 +07:00
Tam Nhu Tran
ce1915366d
fix(cursor): use stdio ignore, sequential polling, move CursorConfig to types
...
- Change spawn stdio from piped to 'ignore' preventing buffer deadlock
- Replace setInterval with sequential setTimeout polling
- Fix TOCTOU in SIGKILL escalation (send directly without probing)
- Move CursorConfig interface to types.ts
- Change detectProvider default from 'openai' to 'unknown'
- Remove redundant removePidFile() when PID is null
2026-02-12 07:51:22 +07:00
Tam Nhu Tran
6af718626f
fix(cursor): align daemon routes, add enabled field, handle bare command
...
- Change /start and /stop to /daemon/start and /daemon/stop matching copilot convention
- Add enabled field to CursorConfig for dashboard toggle parity
- Simplify getCursorConfig() to trust mergeWithDefaults()
- Handle bare 'ccs cursor' to show help instead of reserved-name error
2026-02-12 07:43:27 +07:00
Tam Nhu Tran
94789676b9
fix(cursor): use process.execPath and add safeResolve to model fetcher
...
- Replace 'node' with process.execPath for cross-platform reliability
- Add safeResolve guard in fetchModelsFromDaemon matching startDaemon pattern
2026-02-12 07:37:20 +07:00
Tam Nhu Tran
2ba826bb72
fix(cursor): use getCursorConfig(), fix help text and stub messages
2026-02-12 07:31:02 +07:00
Tam Nhu Tran
36f0308a72
fix(cursor): add response body handling and size limit
...
- Drain health check response body with res.resume()
- Add 1MB body size limit in fetchModelsFromDaemon
2026-02-12 07:24:10 +07:00