Repository navigation
Open
Description
Testing, CI, and tooling gaps found in the round 3 audit. These are process/quality rather than runtime bugs, grouped into one issue.
Lint / tooling
- ESLint uses
tseslint.configs.recommended, notrecommended-type-checked, so the type-aware rules are off.no-floating-promises,no-misused-promises, andawait-thenablenever run, which in an axios + React app is the class of bug most likely to slip (a forgottenawaiton a service call passes lint clean). - The i18n
no-literal-stringgate runs injsx-text-onlymode, so hardcoded strings inplaceholder=/title=/aria-label=and in JS (toasts,throw new Error(...)) bypass it. Nothing runsi18n:extractin CI, so the az locale can drift out of sync. - tsconfig doesn't enable
noUncheckedIndexedAccess(already noted) given the heavy array indexing.
CI / hooks
-
root-ci.yml(fires on root-only changes) runs config checks +npm ci --ignore-scriptsbut nevergo test,go vet, or the web build. - There is no web test runner at all (no vitest/jest/testing-library, no test files), so the entire React app is untested.
ui-ciruns lint/format/build only. - Neither
govulnchecknornpm auditruns in CI. (npm audit currently flags one low-severity dev-only esbuild advisory via vite.) - Husky pre-commit skips
go test/go vetfor migration-only changes, so a migration that breaks the testcontainer schema isn't caught until CI/pre-push.
Test coverage
-
internal/crypto(the AES-GCM layer that encrypts OAuth secrets, SMTP passwords, GitHub App keys) has zero tests, including the two silent-failure fall-throughs (Encrypt returns plaintext when the key is unset; DecryptOrPlain swallows errors and returns ""). -
internal/auth/service_test.goruns on a hand-maintained SQLite schema instead of the real migrations, so it can drift from production Postgres. - Down-migrations are never exercised by any test.
- Progress/count math is only tested on the empty case (cycle/epic progress tests never seed a mix and check the completed tally); 14 handler tests assert via
require.Contains(body, ...)substrings that pass on incidental matches.
Deps
-
@tiptap/extension-mentionand@tiptap/suggestionuse caret^3.22.3while the other 22@tiptap/*are pinned exact; a futurenpm updatecan float them and cause the silent peer-dep mismatch CLAUDE.md warns about. (Also tracked in the round 1 cluster Round 2 audit: lower-severity correctness, contract and tooling items #349.)
Metadata
Metadata
Assignees
Labels
No labels
Activity
LADsy8 commentedon Jul 30, 2026
Hey @cavidelizade i am not going to repeat this comment on each of your issue, but can you follow the other issues that martian posted when creating the repo, with the title with the brackets and same text organisations in the description of the issue. It facilitates the work for newcomers who want to get started on an issue. But thanks nonetheless for the issues you posted! @martian56 is comment okay or overreaching in any capacity?