Repository navigation
chore(repo): consolidate root configuration files - #1935
Merged
Merged
Conversation
Reduce tracked root files from 16 to 11 by relocating Knip and Gitleaks configuration, scoping Oxlint configuration to src, and folding ESLint ignores into package.json. Generate the backend helper under src-tauri/bin and update CLI, CI, tests, and contributor guidance for the new paths. Verified fast lint, formatting, seven lint-selection tests, five Gitleaks Docker regression tests, ESLint ignore behavior, helper setup, and unchanged normalized Knip findings. Pre-commit hook ran. Total eslint: 0, total circular: 5
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
The repository root mixes tool-specific configuration and a generated Node helper with standard repository entrypoints. This adds clutter even though most configuration can live in existing directories.
Solution
Reduce tracked root files from 16 to 11 under one repository-cleanup objective:
config/, updating package scripts, CI, scanner fixtures, and contributor documentation.src/.oxlintrc.json, adjusting its schema, override, and exclusion paths. Oxlint scopes exclusions to the config directory, soconfig/would not preserve source exclusions..eslintignoreexclusion into ESLint settings inpackage.jsonand preserve it in Oxlint.src-tauri/bin/alongside the semantic helper.Keep standard root entrypoints and
.prettierignorefor tool/editor discovery. No dependencies, lockfiles, application UI, schemas, or wire contracts change.Potential risks
External scripts or editor settings that hard-code the previous config paths must use the documented replacements. Direct Knip and Gitleaks invocations now need explicit config paths; repository entrypoints are updated. The Node helper destination changes for subsequent setup runs; older checkouts may retain their old ignored root symlink. On this machine, the old symlink was removed only after verifying the new one has the same target.
Helper setup was exercised on macOS arm64; packaged desktop builds, other operating systems, and editor integrations were not exercised. Reverting this commit restores the original config paths; rerunning
node scripts/setup/sidecar-symlinks.jsafter a revert restores the root helper. No persisted application data is changed.Verification
pnpm lint:fast— passed with the relocated config and preserved source exclusions/override.node --test scripts/ci/select-lint-targets.test.cjs— 7 passed.GITLEAKS_DOCKER_IMAGE=ghcr.io/gitleaks/gitleaks:v8.24.3 node --test scripts/security/gitleaks.test.cjs— 5 passed. The initial native invocation could not run because Gitleaks was not installed; Docker supplied the CI-pinned scanner.pnpm exec knip --reporter jsonbefore relocation andpnpm exec knip --config config/knip.json --reporter jsonafterward — both reported existing findings (exit 1); JSON findings matched after normalizing ordering.pnpm exec prettier --check package.json src/.oxlintrc.json config/knip.json scripts/setup/sidecar-symlinks.js scripts/security/gitleaks.test.cjs .github/CONTRIBUTING.md .github/workflows/ci.yml— passed.pnpm exec prettier --check scripts/ci/select-lint-targets.cjs scripts/ci/select-lint-targets.test.cjs— passed.node scripts/setup/sidecar-symlinks.js— passed; generated backend helper at its new destination.isPathIgnored: vendored QR implementation remains ignored;src/icons.tsremains included.git diff origin/develop...HEAD --checkand commit hooks — passed. Final scope inspection excludes unrelated onboarding work, generated helpers, personal paths, and new secrets.Audit
Architecture review covered config validity, deduplication, path naming, discoverability, and CLI/CI setup consistency (layers 1, 2, 3, 7, and 9). Domain semantics, control flow, cross-domain boundaries, wire serialization, and multi-field resolvers (layers 4, 5, 6, 8, and 10) are unchanged and were outside this configuration-only review.