mirror of
https://github.com/ksyasuda/SubMiner.git
synced 2026-02-27 18:22:41 -08:00
refactor(cli): remove deprecated verbose logging flags
This commit is contained in:
@@ -1,9 +1,10 @@
|
||||
---
|
||||
id: TASK-35
|
||||
title: Add CI/CD pipeline for automated testing and quality gates
|
||||
status: To Do
|
||||
status: Done
|
||||
assignee: []
|
||||
created_date: '2026-02-14 00:57'
|
||||
updated_date: '2026-02-17 07:36'
|
||||
labels:
|
||||
- infrastructure
|
||||
- ci
|
||||
@@ -15,32 +16,32 @@ priority: high
|
||||
## Description
|
||||
|
||||
<!-- SECTION:DESCRIPTION:BEGIN -->
|
||||
Add a GitHub Actions CI pipeline that runs on PRs and pushes to main. The project already has 23 test files (67+ tests) and a `check-main-lines.sh` quality gate script with progressive line-count targets, but none of this runs automatically.
|
||||
|
||||
## Motivation
|
||||
Without CI, regressions in tests or quality gate violations are only caught manually. As the refactoring effort (TASK-27.x) accelerates and new features land, automated checks become essential.
|
||||
|
||||
## Scope
|
||||
1. **Test runner**: Run `pnpm test` on every PR and push to main
|
||||
2. **Quality gates**: Run `check-main-lines.sh` to enforce main.ts line-count targets
|
||||
3. **Type checking**: Run `tsc --noEmit` to catch type errors
|
||||
4. **Build verification**: Run `make build` to confirm the app compiles
|
||||
5. **Platform matrix**: Linux at minimum (primary target), macOS if feasible
|
||||
|
||||
## Implementation notes
|
||||
- The project uses pnpm for package management
|
||||
- Tests use Node's built-in test runner
|
||||
- Build uses Make + tsc + electron-builder
|
||||
- Consider caching node_modules and pnpm store for speed
|
||||
- MeCab is a native dependency needed for some tests — document or skip if unavailable in CI
|
||||
CI should focus on build, test, and type-check validation and should not enforce fixed-size implementation ceilings.
|
||||
<!-- SECTION:DESCRIPTION:END -->
|
||||
|
||||
## Acceptance Criteria
|
||||
<!-- AC:BEGIN -->
|
||||
- [ ] #1 GitHub Actions workflow runs pnpm test on every PR and push to main.
|
||||
- [ ] #2 Quality gate script (check-main-lines.sh) runs and fails the build if line count exceeds threshold.
|
||||
- [ ] #3 tsc --noEmit type check passes as a CI step.
|
||||
- [ ] #4 Build step (make build) completes without errors.
|
||||
- [ ] #5 CI results are visible on PR checks.
|
||||
- [ ] #6 Pipeline completes in under 5 minutes for typical changes.
|
||||
- [x] #1 CI is still triggered on `push` and `pull_request` to `main`.
|
||||
- [x] #2 A canonical test entrypoint is added (`pnpm test`) and executed in CI, or CI explicitly runs equivalent test commands.
|
||||
- [x] #3 CI focuses on functional validation (build, tests, type checks) without hardcoded size gates.
|
||||
- [x] #4 Type-checking is explicitly validated in CI and failure behavior is documented (either `tsc --noEmit` or equivalent).
|
||||
- [x] #5 CI build verification target is defined clearly (current `pnpm run build` or `make build`) and documented.
|
||||
- [x] #6 PR visibility requirement remains satisfied (workflow check appears on PRs).
|
||||
- [x] #7 CI scope (Linux-only vs multi-OS matrix) is documented and intentional.
|
||||
<!-- AC:END -->
|
||||
|
||||
## Implementation Plan
|
||||
|
||||
<!-- SECTION:PLAN:BEGIN -->
|
||||
1. Add a root `pnpm test` script that runs both `test:config` and `test:core`, or keep CI explicit on these two commands.
|
||||
2. Add explicit type-check step (`pnpm exec tsc --noEmit`) unless `pnpm run build` is accepted as the intended check.
|
||||
3. Confirm no hardcoded size gates are treated as mandatory CI quality gates.
|
||||
4. Clarify CI build verification scope in docs and workflow (current `pnpm run build` vs optional `make build`).
|
||||
5. Confirm whether security audit remains advisory or hard-fails. Optional: make advisory check non-blocking with explicit comment.
|
||||
<!-- SECTION:PLAN:END -->
|
||||
|
||||
## Final Summary
|
||||
|
||||
<!-- SECTION:FINAL_SUMMARY:BEGIN -->
|
||||
Updated `.github/workflows/ci.yml` to complete the CI contract without hardcoded size gates: added explicit `pnpm exec tsc --noEmit`, switched test execution to a canonical `pnpm test`, and kept build verification on `pnpm run build` on `ubuntu-latest` for `push`/`pull_request` to `main`. Also removed CI line-count gate enforcement by deleting `check:main-lines*` scripts from `package.json` and removing `scripts/check-main-lines.sh` from the repo. The workflow remains Linux-only by design and continues to show PR checks.
|
||||
<!-- SECTION:FINAL_SUMMARY:END -->
|
||||
|
||||
@@ -1,9 +1,10 @@
|
||||
---
|
||||
id: TASK-36
|
||||
title: Add structured logging with configurable verbosity levels
|
||||
status: To Do
|
||||
status: Done
|
||||
assignee: []
|
||||
created_date: '2026-02-14 00:59'
|
||||
updated_date: '2026-02-17 04:16'
|
||||
labels:
|
||||
- infrastructure
|
||||
- developer-experience
|
||||
@@ -26,7 +27,7 @@ Replace ad-hoc console.log/console.error calls throughout the codebase with a li
|
||||
## Scope
|
||||
1. Create a minimal logger module (no external dependencies needed) with `debug`, `info`, `warn`, `error` levels
|
||||
2. Add a config option for log verbosity (default: `info`)
|
||||
3. Add a CLI flag `--verbose` / `--debug` to override
|
||||
3. Add a CLI flag to control logging verbosity (`--log-level`) while keeping `--debug` as app/dev mode.
|
||||
4. Migrate existing console.log/error calls to use the logger
|
||||
5. Include context tags (service name, operation) in log output for filterability
|
||||
|
||||
@@ -39,11 +40,46 @@ Replace ad-hoc console.log/console.error calls throughout the codebase with a li
|
||||
|
||||
## Acceptance Criteria
|
||||
<!-- AC:BEGIN -->
|
||||
- [ ] #1 A logger module exists with debug/info/warn/error levels.
|
||||
- [ ] #2 Config option controls default verbosity level.
|
||||
- [ ] #3 CLI --verbose/--debug flag overrides config.
|
||||
- [ ] #4 Existing console.log/error calls in core services are migrated to structured logger.
|
||||
- [ ] #5 MPV socket connection logs use debug level (resolves TASK-33 implicitly).
|
||||
- [ ] #6 Log output includes source context (service/module name).
|
||||
- [ ] #7 No performance regression on hot paths (rendering, tokenization).
|
||||
- [x] #1 A logger module exists with debug/info/warn/error levels.
|
||||
- [x] #2 Config option controls default verbosity level.
|
||||
- [x] #3 CLI `--log-level` override config.
|
||||
- [x] #4 Existing console.log/error calls in core services are migrated to structured logger.
|
||||
- [x] #5 MPV socket connection logs use debug level (resolves TASK-33 implicitly).
|
||||
- [x] #6 Log output includes source context (service/module name).
|
||||
- [x] #7 No performance regression on hot paths (rendering, tokenization).
|
||||
<!-- AC:END -->
|
||||
|
||||
## Implementation Plan
|
||||
|
||||
<!-- SECTION:PLAN:BEGIN -->
|
||||
1) Audit remaining runtime console calls and classify by target (core runtime vs help/UI/test-only).
|
||||
2) Keep `--debug` scoped to Electron app/dev mode only; `--log-level` controls logging verbosity.
|
||||
3) Add tests for parsing and startup to keep logging override behavior stable.
|
||||
4) Migrate remaining non-user-facing `console.*` calls in core paths (especially tokenization, jimaku, config generation, electron-backend/notifications) to logger and include context via child loggers.
|
||||
5) Ensure mpv-related connection/reconnect messages use debug level; keep user-facing success/failure outputs when intended.
|
||||
6) Run focused test updates for impacted files, update task notes/acceptance criteria, and finalize task state.
|
||||
<!-- SECTION:PLAN:END -->
|
||||
|
||||
## Implementation Notes
|
||||
|
||||
<!-- SECTION:NOTES:BEGIN -->
|
||||
Updated logging override semantics so `--debug` stays an app/dev-only flag and `--log-level` is the CLI logging control.
|
||||
|
||||
Migrated remaining non-user-facing runtime `console.*` calls in core paths (`notification`, `config-gen`, `electron-backend`, `jimaku`, `tokenizer`) to structured logger
|
||||
|
||||
Moved MPV socket lifecycle chatter to debug-level in `mpv-service` so default info is less noisy
|
||||
|
||||
Updated help text and CLI parsing/tests for logging via `--log-level` while keeping `--debug` app/dev-only.
|
||||
|
||||
Validated with focused test run: `node --test dist/cli/args.test.js dist/core/services/startup-bootstrap-service.test.js dist/core/services/cli-command-service.test.js`
|
||||
|
||||
Build still passes via `pnpm run build`
|
||||
<!-- SECTION:NOTES:END -->
|
||||
|
||||
## Final Summary
|
||||
|
||||
<!-- SECTION:FINAL_SUMMARY:BEGIN -->
|
||||
TASK-36 is now complete; structured logging is consistently used in core runtime paths, with CLI log verbosity controlled by `--log-level`, while `--debug` remains an Electron app/dev-mode toggle.
|
||||
|
||||
Backlog task moved to Done after verification of build and focused tests.
|
||||
<!-- SECTION:FINAL_SUMMARY:END -->
|
||||
|
||||
Reference in New Issue
Block a user