Commit Graph
4158 Commits
Author SHA1 Message Date
haelyra 6fa858fbdf maint: integrate reviewed contribution #3803 2026-10-29 11:27:56 -07:00
haelyra 023acf21d0 maint: integrate reviewed contribution #3794 2026-10-29 11:27:56 -07:00
haelyra 14ba1e211f maint: integrate reviewed contribution #3777 2026-10-29 11:27:40 -07:00
haelyra 291635f7f9 maint: integrate reviewed contribution #3776 2026-10-29 11:27:01 -07:00
haelyra ff9095f6f7 maint: integrate reviewed contribution #3775 2026-10-29 11:26:59 -07:00
haelyra 8fc06b13cb maint: integrate reviewed contribution #3562 2026-10-29 11:26:56 -07:00
haelyra 124887fd3b maint: integrate reviewed contribution #3748 2026-10-29 11:26:55 -07:00
haelyra 3f3b88a725 maint: integrate reviewed contribution #3550 2026-10-29 11:25:31 -07:00
haelyra 65d83f9290 maint: integrate reviewed contribution #3669 2026-10-29 11:25:30 -07:00
haelyra c7db9b410f maint: integrate reviewed contribution #3657 2026-10-29 11:25:29 -07:00
haelyra 6a3c45ac7f maint: integrate reviewed contribution #3601 2026-10-29 11:25:27 -07:00
haelyra ff147d751f maint: integrate reviewed contribution #3593 2026-10-29 11:25:25 -07:00
haelyra f77db133ac maint: integrate reviewed contribution #3614 2026-10-29 11:25:23 -07:00
haelyra a60c58ab42 maint: integrate reviewed contribution #3780 2026-10-29 11:25:19 -07:00
haelyra d2c71fd0e9 maint: integrate reviewed contribution #3588 2026-10-29 11:25:18 -07:00
haelyra 3a346e5109 maint: integrate reviewed contribution #3587 2026-10-29 11:25:13 -07:00
haelyra 16e4edc5ba fix: integrate portable selector output from #3744 2026-10-29 11:25:12 -07:00
haelyra e6b301a4ac maint: integrate reviewed contribution #3580 2026-10-29 11:23:27 -07:00
haelyra 6e58410eaa maint: integrate reviewed contribution #3555 2026-10-29 11:23:26 -07:00
haelyra 59b8ab024f maint: integrate reviewed contribution #3707 2026-10-29 11:23:24 -07:00
haelyra 09e0eb7d7f maint: integrate reviewed contribution #3591 2026-10-29 11:23:24 -07:00
haelyra 7bc0b1a6a9 maint: integrate reviewed contribution #3631 2026-10-29 11:23:22 -07:00
haelyra bca6fcee9e maint: integrate reviewed contribution #3567 2026-10-29 11:23:22 -07:00
haelyra cbdd9be209 maint: integrate reviewed contribution #3778 2026-10-29 11:23:21 -07:00
haelyra 674d5458c9 maint: integrate reviewed contribution #3764 2026-10-29 11:23:19 -07:00
haelyra 9aed578c67 fix: integrate symlink-aware GateGuard exemptions from #3726 2026-10-29 11:20:48 -07:00
haelyra 8e00137b04 fix: integrate observer identity and lease repair with canonical root matching 2026-10-29 11:19:43 -07:00
haelyra c337d7c057 feat: integrate reviewed module governance with Windows path assertions 2026-10-29 11:19:41 -07:00
haelyra 9b296f4cab docs: preserve latest contributor migration safeguards and workflow assertions 2026-10-29 11:17:59 -07:00
haelyra 8851c049ec docs: integrate reviewed workflow guidance from #3727 2026-10-29 11:17:30 -07:00
minteeqahmed-png ef82fcb130 fix(scripts): strip unquoted YAML comments and preserve mixed body line endings 2026-10-29 21:49:53 +05:00
minteeqahmed-png fb4683317f fix(scripts): harden gemini-adapt-agents for CRLF, unknown flags, and block tool lists 2026-10-29 20:56:00 +05:00
longankang 8e4a6c03bf fix: validate Codex hook references in plugin cache
Collect string-valued manifest.hooks as a file reference so missing files, directories, and paths outside the cache fail validation. Add regression coverage for valid and invalid hook references while preserving non-string and absent-hook behavior.

Closes #3786
2026-10-29 15:30:33 +08:00
Ali Arslan 7b3075180f test(opencode): assert the stub removal was attempted 2026-10-29 01:29:23 +05:00
Ali Arslan d2df54a2ef fix(opencode): never report repair success while the pre-fix stub is retained 2026-10-29 01:06:32 +05:00
Brian La Plume 4a76f78411 fix(gateguard): expand unique sudo long-option prefixes
getopt_long accepts a unique prefix, so sudo --use root rm -rf build is
--user root and the resolver read root as the command. Expand unique
prefixes from sudo's long option table before the value/non-exec checks.
--help joins the non-executing modes.
2026-10-28 12:28:55 -07:00
Brian La Plume 2a3ed89600 refactor(config-protection): build targetPaths without mutation 2026-10-28 12:14:38 -07:00
Brian La Plume a46e36d488 fix(gateguard): sudo env assignments between options, missing value flags
sudo accepts VAR=value between its options (parse_args.c is_envar), so
sudo FOO=1 -u root rm -rf resolved -u as the command. Keep reading options
past assignments. Add sudo -R/--chroot, -a/--auth-type, -c/--login-class
and doas -a as value flags, and stop a short-cluster scan at any unknown
letter, so sudo -R/live rm -rf no longer reads the l in /live as -l.
doas -C only checks config, so it is non-executing; the existing doas -C dd
case moves to the passive list.
2026-10-28 12:13:25 -07:00
Brian La Plume 9f05c6fe01 test(run-with-flags): pin hook enablement env in GateGuard truncation tests 2026-10-28 11:55:06 -07:00
Brian La Plume fbb9d34fd1 test(config-protection): missing protected target before an existing one 2026-10-28 11:54:16 -07:00
Brian La Plume 7253c8a261 fix(gateguard): treat sudo list/validate/edit modes as non-executing
sudo -l/--list, -v, -K, -V and -e/--edit (and doas -L) do not run the
command operand, so sudo -l rm -rf build was denied as destructive. The
privilege-wrapper resolver now reports no executable command for those
modes. Short clusters stop at the first value flag, so sudo -ul rm -rf
(user l) stays destructive.
2026-10-28 11:54:13 -07:00
Ali Arslan 770eb29b9f fix(opencode): remove the pre-fix declined stub the legacy migration leaves behind 2026-10-28 23:30:39 +05:00
Ali Arslan b2f4abb4c4 fix(opencode): treat the pre-fix declined factory stub as inactive during migration 2026-10-28 23:17:07 +05:00
Ali Arslan 4ebe4c8bc3 fix(tests): skip the inert OpenCode stub when loading plugin factories 2026-10-28 22:50:14 +05:00
Ali Arslan 6b11ffeb7d fix(tests): assert the inert OpenCode stub as a V2 definition object 2026-10-28 22:48:50 +05:00
Ali Arslan b4b3c84ca0 fix(tests): satisfy review on the loader-contract suite
- Remove the unused `test` helper: `eslint` fails this file with
  no-unused-vars ("'test' is defined but never used", exit 1).
- Print `Results: Passed: N, Failed: N`. tests/run-all.js parses those tokens
  for repository-wide totals, so the suite previously contributed 0 tests.
- Remove the generated temp plugin directory after each import instead of
  leaving an `ecc-plugin-contract-*` directory per run.

node tests/opencode-plugin-loader-contract.test.js  -> Results: Passed: 3, Failed: 0
node tests/run-all.js opencode-plugin-loader-contract -> Total Tests: 3, Passed: 3
npx eslint on all six changed files -> 0 errors
2026-10-28 22:32:41 +05:00
Ali Arslan 73f61801db fix(opencode): make the declined-hooks plugin stub satisfy the V2 loader schema
The inert stub written when hook consent is not granted was
`export default async () => ({})`. OpenCode v2 validates every plugin
module before running it and requires the default export to be a definition
object with an `id` and an `effect` or `setup` function, so a declined or
runtime-less home install printed the same startup error as the V1 hook
plugin:

  PluginModule.LoadError: Plugin must export a default definition with an id
  and an effect or setup function.
  (cause: SchemaError(Expected object at ["default"]))

Write `export default { id: "ecc-hooks", setup() {} }` instead. It keeps the
inert behaviour (no imports, no module initialization of the replaced
plugin) and satisfies the loader.

Tests that pinned the generated bytes now compare against
getDisabledOpenCodePluginContent() rather than a duplicated literal, and
tests/opencode-plugin-loader-contract.test.js asserts the loader contract on
the generated payload. That test fails on the previous stub
("default export must be an object, got function").

Refs #3537. The same assertion should cover .opencode/plugins/*.ts once a V2
entrypoint lands (#3536, #3224); those plugins are scanned independently in
home installs, so both the barrel and the implementation are loaded.
2026-10-28 22:32:41 +05:00
Yann Roberto f1f542044c fix(install): accept all supported component families in config 2026-10-28 16:58:35 +08:00
Muhammad Zubair b3b13350d1 test: isolate HOME in the test files that write to the real home directory 2026-10-28 12:20:21 +05:00
Wen c5a11f9f7a chore(context-packs): refresh skill-triggers registry digest 2026-10-27 16:52:48 -03:00