The managed hook block is pinned to the retired v0.193.0 train, and bumping it opens 73 pre-existing violations #316
Labels
No labels
burndown-2026-06
headless
autonomy
async-consult
autonomy
epic
autonomy
headless
autonomy
live-collab
c#
priority
P0
priority
P1
priority
P2
priority
P3
priority
P4
role/ai
role/creator
role/design
role/director
role/engineer
role/exec
role/human
role/ops
role/qa
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
coilyco-gaming/eco-app#316
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
.pre-commit-config.yamlpins the managed agentic-os block atrev: v0.193.0. That tag is from the retiredaos-v*scheme, not theaos-precommit-v*train thatapply-agentic-os-hooks.pytracks. The current default isaos-precommit-v0.34.0.Why it matters today: the secret scan is broken here
At
v0.193.0the offline scan passes its exclude-paths regex through a process substitution:Native Windows trufflehog cannot open the resulting descriptor, so on a native Windows host every run fails:
The current
scripts/trufflehog-scan.shwrites a real temp file withmktempand converts it withcygpathfor the native binary, so the bump fixes the scan rather than muting it. Verified by diffing the script at both tags.Coverage is degraded, not absent. This repo also defines a
repo: localtrufflehog hook with an inline entry and no--exclude-paths, and that one passes. So one of the two scans runs. Those two hooks share a display name, which is why the output shows one pass and one fail and reads confusingly.Why it is not a one-line fix
Running
apply-agentic-os-hooks.py --repo eco-appproduces a working bump, and both trufflehog hooks then pass. Butv0.193.0is old enough that the refresh also activates a baseline this repo has never met.pre-commit run --all-filesthen reports 115 FAIL lines, roughly 73 distinct violations, across six hooks. The commit aborts on the installed hook, correctly, and--no-verifyis not an option.Breakdown, easiest first.
Size caps, 42 violations. Mostly a config-key migration.
pyproject.tomlalready declares exactly the right paths:with a sound comment about
investigation/being a preserved post-mortem anddocs/holding long-form FEATURES docs migrated from the four source repos. That reasoning still holds. What changed is that agentic-os#1108 madeexcludesplacement-only, and size exemption moved to a separatevendoredkey. So these paths are declared and simply not reaching the caps any more. eco-mods hit this exact wall and resolved it by bumping the rev sovendoredbecomes effective.actionlint. One missing config file.
Fails only on unknown runner labels
dockeranddeploy, which are self-hosted labels. It needs a.github/actionlint.yamldeclaring them, which sibling repos already carry. No workflow changes.check json. One file.
mods/telemetry/Configs/EcoTelemetry.example.jsondoes not parse:Expecting property name enclosed in double quotes: line 8 column 3. Likely an annotated example config. Either make it valid JSON or exclude it as a template.source doc references, 22 violations. Mechanical.
Dead refs to
docs/internals.mdfrom the telemetry mod, and todocs/dto.mdanddocs/currency-holdings.mdfrom the stores mod. The stores docs do exist atmods/stores/docs/, so these are relative-path mismatches after the four-repo merge rather than missing documents.Actions run steps stay one line, 9 violations. The only real restructuring.
build-publish.yml,modio-publish.yml, andmods-diagnostic.ymlinline multi-line bodies through YAML block scalars andpython3 -c. The rule wants each body moved into a tracked script invoked from a single-linerun.Suggested order
vendoredtopyproject.toml. That should clear 42 at once..github/actionlint.yamlwith the self-hosted labels.Worth deciding separately whether the
repo: localtrufflehog hook should stay once the managed one works, since it duplicates the scan without the exclude-paths protection. It does carrystages: [pre-commit, pre-push], which may be the reason it exists.Note on scope
Nothing here was introduced by a recent change. All of it predates the pin and only becomes visible when the pin moves. Sibling
eco-opscarries the samev0.193.0pin and will hit its own version of this.Landed on main as
ed4e5f7.pre-commit run --all-filesis green, 844 tests pass, lint and smoke pass.What shipped, against the suggested order
1. Rev bump + size-cap key. Bumped to
aos-precommit-v0.34.0viaapply-agentic-os-hooks.py. Both trufflehog hooks now pass.The size exemption went to
size_excludes, notvendored. agentic-os#1108 split the two:vendoredmeans "this Markdown's shape is not ours" (an SDK, an external surface's copy), andsize_excludesis the separate honest key the validator docstring describes for exactly this case, "a monorepo that co-locates a README and docs/ under each component".investigation/,docs/, andmods/are ours, sovendoredwould be a false provenance claim. 42 cleared.2. actionlint.
.github/actionlint.yamldeclaresdockeranddeploy. Re-running the apply script after the file existed also picked up the-config-fileargs, since the generator emits those only for a consumer that ships the config. No workflow changes. 6 cleared.3. Telemetry example JSON. Not a broken file.
EcoTelemetryConfig.LoadsetsReadCommentHandling = JsonCommentHandling.SkipandAllowTrailingCommas = true, so the//annotations are deliberate and the runtime reads them. Making it strict JSON would delete the per-signal endpoint examples, which are the file's whole purpose. Renamed toConfigs/EcoTelemetry.example.jsoncand repointed the README copy step. Nothing loads the example itself, only theEcoTelemetry.jsoncopy, so no code change.4. Source doc references. The hook resolves a
docs/-prefixed ref only from repo root, sodocs/dto.mdfrommods/stores/src/looked for<root>/docs/dto.md. A../-prefixed ref resolves relative to the source file's own parent instead, and every one of the 22 sits one level under its mod root, so../docs/*.mdlands on the real file. 22 cleared.5. Inline workflow bodies. The four
python3 -c 'exec("...")'Telegram alerts were byte-identical, and agentic-os-hardware, agentic-os-kai, and agentic-os-xxx already carry the extracted version of that same body. Copied it in asscripts/alert_telegram.py(underscore, since ruff N999 rejects a hyphenated Python module and the repo's other Python scripts use underscores). The two modio credential guards becamescripts/require-secret.sh <ENV_VAR_NAME>, and the NuGet egress preflight becamescripts/mods-preflight.sh. 9 cleared.Not in the original breakdown: typos
The
v0.34.0block also addscrate-ci/typos, which the issue's count predates. 74 hits, 61 of them indata/eco_gnome_data.json(the vendored recipe graph:FrothFloatationCell,Processsed Flaxseed Oil, and every non-English locale string).Excluding that file needed an upstream fix first. The generated hook passed
args: []to drop upstream's--write-changes, which also dropped--force-exclude, and pre-commit hands typos explicit paths, so_typos.toml[files] extend-excludewas inert. Only word lists worked, and word-listingba,sie,ist,ein,bordwould have whitelisted them across real source. Fixed in coilyco-flight-deck/agentic-os#1152, which restores--force-excludewhile keeping the report-not-rewrite behavior.The 13 real hits are fixed in source or narrowly declared:
Overrideable->Overridable,mis-label->mislabel,meaned->averaged, and thethrlocal renamedthresh._typos.tomldeclaresser8as an identifier, plusspecialt(a deliberate stem the code appendsy/iesto, and theSpecialty*series-discovery prefix) andunparseableas words.Two things left for you
The
repo: localtrufflehog hook stayed. It is now provably redundant: the managed hook carries the samestages: [pre-commit, pre-push]you guessed was its reason to exist, and runs the same--no-verification --no-update --failscan plus--exclude-paths. So the local one is a strictly weaker duplicate that also shares a display name, which is what made the output read confusingly. I tried to remove it and the tool gate blocked the edit as a secret-scanning-control change, correctly enough. It is a one-block deletion whenever you want it.agentic-os#1152 is unmerged. Until it lands, a re-run of
apply-agentic-os-hooks.pyfrom agentic-osmainwill revert--force-excludein this repo's config and the vendored-dataset exclude goes inert again. The typos hook would then fail oneco_gnome_data.jsonuntil the PR merges.Scope note correction
The issue expects
eco-opsto carry the samev0.193.0pin. It does not, it is already onaos-precommit-v0.34.0, so that half is stale. It does have its own unmet baseline (eight failing hooks) and an unrelated dirty worktree I left untouched, filed separately.typos, but that skip cannot reach the third-party typos hook #1155