Commit Graph
2905 Commits
Author SHA1 Message Date
affaan-m 9fae9163f2 Merge reviewed contributor PR #2954 into backlog batch
Source-PR: https://github.com/affaan-m/ECC/pull/2954
Source-Head: 8f7db0f3cf

Local integration checkpoint; aggregate review and hosted acceptance pending.
2026-09-27 23:36:51 -04:00
affaan-m 72c6d90478 Merge reviewed contributor PR #2829 into backlog batch
Source-PR: https://github.com/affaan-m/ECC/pull/2829
Source-Head: d811349224

Local integration checkpoint; aggregate review and hosted acceptance pending.
2026-09-27 23:36:51 -04:00
affaan-m 75dec47278 Merge reviewed contributor PR #3213 into backlog batch
Source-PR: https://github.com/affaan-m/ECC/pull/3213
Source-Head: 1394cf6f0a

Local integration checkpoint; aggregate review and hosted acceptance pending.
2026-09-27 23:36:51 -04:00
affaan-m e6cd4498ef Merge reviewed contributor PR #3243 into backlog batch
Source-PR: https://github.com/affaan-m/ECC/pull/3243
Source-Head: cfe6d90d9f

Local integration checkpoint; aggregate review and hosted acceptance pending.
2026-09-27 23:36:51 -04:00
affaan-m 0656f7af0b Merge reviewed contributor PR #3235 into backlog batch
Source-PR: https://github.com/affaan-m/ECC/pull/3235
Source-Head: aff9c64560

Local integration checkpoint; aggregate review and hosted acceptance pending.
2026-09-27 23:36:51 -04:00
affaan-m b66584c445 Merge reviewed contributor PR #3244 into backlog batch
Source-PR: https://github.com/affaan-m/ECC/pull/3244
Source-Head: 5ffe239ee5

Local integration checkpoint; aggregate review and hosted acceptance pending.
2026-09-27 23:36:50 -04:00
affaan-m aa233efd3a Merge reviewed contributor PR #3013 into backlog batch
Source-PR: https://github.com/affaan-m/ECC/pull/3013
Source-Head: 72c7ca5387

Local integration checkpoint; aggregate review and hosted acceptance pending.
2026-09-27 23:36:50 -04:00
affaan-m 982e7d3766 Merge reviewed contributor PR #3060 into backlog batch
Source-PR: https://github.com/affaan-m/ECC/pull/3060
Source-Head: f8c604d37e

Local integration checkpoint; aggregate review and hosted acceptance pending.
2026-09-27 23:36:50 -04:00
affaan-m ef57e979ef Merge reviewed contributor PR #3099 into backlog batch
Source-PR: https://github.com/affaan-m/ECC/pull/3099
Source-Head: d12c5a584d

Local integration checkpoint; aggregate review and hosted acceptance pending.
2026-09-27 23:36:50 -04:00
affaan-m 68b8559397 Merge reviewed contributor PR #3233 into backlog batch
Source-PR: https://github.com/affaan-m/ECC/pull/3233
Source-Head: 1c41fa7c00

Local integration checkpoint; aggregate review and hosted acceptance pending.
2026-09-27 23:35:43 -04:00
affaan-m 7253ad415c Merge reviewed contributor PR #3246 into backlog batch
Source-PR: https://github.com/affaan-m/ECC/pull/3246
Source-Head: d4047a4d2f

Local integration checkpoint; aggregate review and hosted acceptance pending.
2026-09-27 23:35:42 -04:00
affaan-m f2835aacf3 Merge reviewed contributor PR #3121 into backlog batch
Source-PR: https://github.com/affaan-m/ECC/pull/3121
Source-Head: 9f64ff2c3d

Local integration checkpoint; aggregate review and hosted acceptance pending.
2026-09-27 23:35:42 -04:00
affaan-m 3587ba70b9 Merge reviewed contributor PR #3210 into backlog batch
Source-PR: https://github.com/affaan-m/ECC/pull/3210
Source-Head: f5d0fcc7e1

Local integration checkpoint; aggregate review and hosted acceptance pending.
2026-09-27 23:35:42 -04:00
affaan-m d98549ccf7 Merge reviewed contributor PR #3008 into backlog batch
Source-PR: https://github.com/affaan-m/ECC/pull/3008
Source-Head: e9911d6668

Local integration checkpoint; aggregate review and hosted acceptance pending.
2026-09-27 23:35:42 -04:00
affaan-m 8f7db0f3cf fix(gan): verify responsive and keyboard evaluator capabilities 2026-09-27 23:11:21 -04:00
affaan-m cfe6d90d9f fix(control-plane): preserve accessible state across poll races 2026-09-27 22:55:11 -04:00
affaan-m e9911d6668 fix(opencode): preserve primary failures through complete lock cleanup 2026-09-27 22:41:08 -04:00
affaan-m d811349224 fix(gateguard): detect stdin dd writes and launcher-wrapped shells 2026-09-27 22:25:29 -04:00
affaan-m 429384f80c fix(opencode): refuse known legacy hooks without consent 2026-09-27 22:12:34 -04:00
affaan-m 1c41fa7c00 docs(codex): clarify explicit MCP pin refresh and verify shared recommendation 2026-09-27 22:08:43 -04:00
affaan-m 1394cf6f0a Merge current main and verify PowerShell foreach classification 2026-09-27 22:05:48 -04:00
affaan-m d12c5a584d fix(context): refresh manual trigger binding after Plankton docs update
Rebind the unchanged manually curated trigger payload to the current registry. Preserve all trigger entries, provenance and timestamps; no provider generation is implied.
2026-09-27 21:55:17 -04:00
affaan-m a74c743370 fix(gateguard): classify literal dd execution without matching passive text
Preserve the contributor repair and current main protections. Handle operand ordering, bounded literal command wrappers, executable containers and find actions while keeping quoted prose and option values passive.

Source-PR: https://github.com/affaan-m/ECC/pull/2829
Source-Head: c88b3f879a
Integration-Main: d3b8a3e908
2026-09-27 21:50:09 -04:00
affaan-m 503e2ef331 fix(mcp): reconcile reviewed chrome-devtools pin with current main
Preserve the contributor pin and current main. Keep both default connector declarations at the exact official 1.10.1 release and retain user-managed configuration behavior.

Source-PR: https://github.com/affaan-m/ECC/pull/3233
Source-Head: 62bf2b2910
Integration-Main: d3b8a3e908
2026-09-27 21:41:47 -04:00
affaan-m f5d0fcc7e1 fix(install): reconcile UTF-8 BOM support with current main
Preserve the contributor commits and current main changes.

Source-PR: https://github.com/affaan-m/ECC/pull/3210
Source-Head: 94ca2de35e
Integration-Main: d3b8a3e908
2026-09-27 21:35:30 -04:00
affaan-m d4047a4d2f docs: reconcile manual install prerequisites with current main
Preserve the contributor commits and current main changes.

Source-PR: https://github.com/affaan-m/ECC/pull/3246
Source-Head: a3e9bc5184
Integration-Main: d3b8a3e908
2026-09-27 21:35:29 -04:00
affaan-m 6dc706fe85 fix(install): distinguish user plugins from ECC aliases
Attribute unrecorded OpenCode aliases only to exact trusted ECC source or build bytes while keeping planned and recorded destinations strict. Pass the trusted source root through repair plans and preserve unrelated user plugin files.
2026-09-27 21:23:11 -04:00
affaan-m 9f6c16fe02 fix(tests): make guarded parent replacement portable to Windows 2026-09-27 21:04:21 -04:00
affaan-m aff9c64560 fix(control-pane): preserve snapshot integrity during failed refreshes 2026-09-27 21:03:37 -04:00
affaan-m 5ffe239ee5 fix(tests): reconcile launcher coverage with current main 2026-09-27 21:03:37 -04:00
affaan-m 533f5ff20a fix(docs): format complexity sources as Markdown links 2026-09-27 21:03:37 -04:00
affaan-m 9f64ff2c3d fix(context): refresh registry binding for Polish docs module 2026-09-27 20:50:50 -04:00
Affaan Mustafa ac27e096f5 Merge branch 'main' into docs/oxlint-complexity-ratchet 2026-09-27 19:42:49 -05:00
dependabot[bot] d3b8a3e908 chore(deps): bump actions/stale from 10.4.0 to 11.0.0 (#3005)
Bumps [actions/stale](https://github.com/actions/stale) from 10.4.0 to 11.0.0.
- [Release notes](https://github.com/actions/stale/releases)
- [Changelog](https://github.com/actions/stale/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/stale/compare/1e223db275d687790206a7acac4d1a11bd6fe629...4391f3da665fdf50b6810c1a66712fb9ba21aa93)

---
updated-dependencies:
- dependency-name: actions/stale
  dependency-version: 11.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-09-27 19:38:49 -05:00
affaan-m 610495474a Merge current main while preserving reviewed OpenCode consent guards 2026-09-27 20:32:22 -04:00
affaan-m 923019d99f fix(opencode): preserve consent ownership through guarded install and repair 2026-09-27 20:32:22 -04:00
affaan-m 72c7ca5387 Merge current main into PR #3013, preserving reviewed contribution 2026-09-27 20:26:27 -04:00
affaan-m 80b9339727 Merge current main into PR #3121, preserving reviewed contribution 2026-09-27 20:26:25 -04:00
affaan-m f8c604d37e Merge current main into PR #3060, preserving reviewed contribution 2026-09-27 20:24:52 -04:00
affaan-m 7eb1e32ae0 merge: preserve Turkish guide link fixes with reviewed main 2026-09-27 20:16:02 -04:00
Tushar PanchalandClaude Sonnet 5 042924e1f4 fix(install): support invocation through POSIX sh (#3014)
* fix(install): make install.sh robust to sh/dash invocation

Two related portability fixes so `sh install.sh` behaves correctly
even though the script is written for bash:

- The cygpath detection used the bash-only `&>/dev/null` redirection.
  dash misparses `&>`, so `command -v cygpath &>/dev/null` always took
  the true branch and tried to run the nonexistent `cygpath` binary,
  failing with "cygpath: not found". Switched to the POSIX-portable
  `>/dev/null 2>&1` form.

- Some dash builds don't support `set -o pipefail`, so `sh install.sh`
  can fail immediately at that line before even reaching the cygpath
  check (or the `[[ ... ]]` symlink-resolution logic further down).
  Added a guard that re-execs the script under bash when the current
  shell lacks bash capabilities, so the rest of the bash-only syntax
  always runs under a real bash regardless of the invoking shell. The
  guard probes for the `[[` compound command directly (via
  `eval '[[ 1 == 1 ]]'`) rather than trusting the $BASH_VERSION
  environment variable, since that variable could be inherited or
  spoofed under a non-bash shell and cause the guard to be skipped.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019XBaBRjaZgwhrZtYoqcQfp

* test(install): cover the sh install.sh re-exec path

Greptile flagged that the bash re-exec guard added in install.sh has
no automated coverage, since the existing test helper only invoked
the wrapper via `bash`. Adds two regression tests:

- "delegates to the Node installer when invoked via a POSIX sh
  wrapper" — runs the script via `sh` and asserts the args/cwd still
  reach the Node installer correctly.
- "re-execs into bash under sh even when BASH_VERSION is spoofed in
  the environment" — exercises the eval '[[ 1 == 1 ]]' capability
  probe directly, guarding against a regression back to trusting the
  (spoofable) $BASH_VERSION variable.

CodeRabbit then pointed out that the second test used generic `sh`,
which could trivially pass without exercising the re-exec branch at
all if `sh` ever resolves to bash on some system. Added a
findPosixOnlyShell() helper that prefers `dash` (falling back to
checking `sh`, and skipping with an explicit message if neither
genuinely lacks bash's `[[`), so the test reliably exercises the
branch it claims to cover instead of passing vacuously.

CodeRabbit then flagged that the skip path itself was miscounted as
a pass (the callback returned normally, so `test()` reported success
and `passed` was incremented even though nothing executed). Moved
the findPosixOnlyShell() check outside the test() registration, so
the test is only registered — and only counted — when a genuinely
POSIX-only shell is actually available; otherwise it's excluded from
both the passed and failed counts with an explicit skip line.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019XBaBRjaZgwhrZtYoqcQfp

---------

Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-27 19:04:10 -05:00
haelyra eaeef53a15 Merge pull request #3234 from haelyra/feat/ecc-029-production-acceptance
feat(profiles): add opt-in Lean/Full with hybrid Auto skill selection
2026-09-27 18:34:29 -04:00
haelyra befde0d2cd fix(profiles): bind routing receipts and harden review paths 2026-09-27 18:01:40 -04:00
haelyra a9e3ecb77f fix(ci): allow slow Windows test cleanup 2026-09-27 17:37:47 -04:00
haelyra 874883c728 fix(profiles): make evaluator permissions and Windows checks portable 2026-09-27 17:03:28 -04:00
haelyra 0765f7a2ca feat(profiles): add opt-in Lean/Full and hybrid Auto selection 2026-09-27 16:46:07 -04:00
pasmudandCommandCodeBot d42d918bd3 fix(control-pane): stop a stale poll lowering the staleness mark
The settled-token guard correctly ignored an older poll, but that poll
still set settledPoll to its own token on the way out. With three polls
settling in the order 3, 1, 2, the ignored poll 1 pulled the mark back
to 1, so the even older poll 2 then passed the guard and replaced poll
3's counts, or marked a healthy view offline.

The mark now only moves forward. A poll that settles late is itself
stale, so it has no business moving the mark at all.

Covered by a new runtime case that settles three polls out of order as
3, 1, 2, once with an older success and once with an older failure. The
success case catches the counts regressing, the failure case catches a
healthy view being marked offline. Reverting the fix trips each of them
independently, and the unmutated file passes all 21.

Co-authored-by: CommandCodeBot <noreply@commandcode.ai>
2026-09-27 14:03:13 +00:00
Seekers2001 2b35e299ea test: cover launcher error handling 2026-09-27 17:32:44 +08:00
pasmudandCommandCodeBot cee58ba39e fix(control-pane): settle the poll guard against the last settled request
The staleness guard compared a poll against the newest poll STARTED, and
only the failure path used it. Two orderings were wrong.

An older success settling after a newer one had no guard at all, so it
overwrote the newer counts, the canvas label and the announcement with
older data. Both paths now check the token.

An older failure settling while a newer poll was still in flight was
discarded, because a newer poll had merely started. The page then kept
the last successful counts and its no-steering message as if they were
current. Anchoring the guard to the newest poll that has SETTLED fixes
that: the older failure is still the newest thing to have settled, so it
lands, and the pending poll restores the view when it answers.

That single change covers both orderings, so the guard no longer needs
to know which path it is on. Each poll records itself as settled when it
finishes, whatever the outcome.

A poll also had no timeout, so a request that never answered left the
last steering guidance on screen indefinitely. Each poll now aborts
after ten seconds through an AbortController, and that abort is what
wakes the poll, so a timeout is reported as an outage instead of
silently leaving stale guidance.

The test harness can now hold a request open indefinitely and fire
pending timers on demand, so the timeout is exercised without waiting.
New assertions cover an older success losing to a newer one, an older
failure landing while a newer poll is in flight and then being
recovered by it, and a hung poll timing out into the offline state.
Removing the success guard, re-anchoring the guard to the last started
poll, and removing the timeout each fail one of those assertions, and
the unmutated file passes all of them.

Co-authored-by: CommandCodeBot <noreply@commandcode.ai>
2026-09-27 08:11:44 +00:00
Yann Roberto a3e9bc5184 docs: fix prerequisites in manual install examples 2026-09-27 12:38:39 +08:00