mirror of
https://github.com/SamyRai/tercul-backend.git
synced 2025-12-27 00:31:35 +00:00
This commit consolidates all outstanding tasks from `TODO.md`, `BUILD_ISSUES.md`, and inline `TODO` comments into a single `TASKS.md` file. This new file serves as the single source of truth for all pending development work, categorized by priority. The following legacy files have been removed to avoid confusion: - `TODO.md` - `BUILD_ISSUES.md` The `AGENTS.md` file has also been updated to remove a temporary debug log and now directs agents to the new `TASKS.md` file for guidance.
4.3 KiB
4.3 KiB
Consolidated Tasks for Tercul
This document is the single source of truth for all outstanding development tasks. It is generated from TODO.md, BUILD_ISSUES.md, and inline TODO comments.
Urgent: Build Failures
These issues are currently breaking the build and must be resolved before any other work can proceed. All issues are located in internal/adapters/graphql/schema.resolvers.go.
- Resolver Errors:
internal/adapters/graphql/schema.resolvers.go:10:2: "log" imported and not usedinternal/adapters/graphql/schema.resolvers.go:1071:24: r.App.AuthorRepo undefined (type *app.Application has no field or method AuthorRepo)internal/adapters/graphql/schema.resolvers.go:1073:24: r.App.AuthorRepo undefined (type *app.Application has no field or method AuthorRepo)internal/adapters/graphql/schema.resolvers.go:1089:36: r.App.Localization.GetAuthorBiography undefined (type *"tercul/internal/app/localization".Service has no field or method GetAuthorBiography)internal/adapters/graphql/schema.resolvers.go:1141:22: r.App.UserRepo undefined (type *app.Application has no field or method UserRepo)internal/adapters/graphql/schema.resolvers.go:1143:24: r.App.UserRepo undefined (type *app.Application has no field or method UserRepo)internal/adapters/graphql/schema.resolvers.go:1212:20: r.App.TagRepo undefined (type *app.Application has no field or method TagRepo)internal/adapters/graphql/schema.resolvers.go:1225:32: r.App.TagRepo undefined (type *app.Application has no field or method TagRepo)internal/adapters/graphql/schema.resolvers.go:1249:25: r.App.CategoryRepo undefined (type *app.Application has no field or method CategoryRepo)internal/adapters/graphql/schema.resolvers.go:1262:32: r.App.CategoryRepo undefined (type *app.Application has no field or method CategoryRepo)
High Priority
Architecture & Refactoring
- Implement Full Observability:
- Centralize logging across the application.
- Add Prometheus metrics for key operations.
- Add OpenTelemetry tracing for distributed request tracing.
- Establish CI/CD Pipeline:
- Add
make lint test test-integrationto the CI pipeline. - Set up automated deployments to a staging environment.
- Add
- Refactor Testing Utilities:
- Remove database logic from
internal/testutil/testutil.goto support mock-based integration tests.
- Remove database logic from
Features
-
Implement Analytics Features:
- Implement view counting for works and translations.
- Implement like counting for works and translations.
- Implement comment counting for works.
- Implement bookmark counting for works.
- Implement translation counting for works.
- Implement translation analytics to show popular translations.
- Note: This is referenced in both
TODO.mdandinternal/jobs/linguistics/work_analysis_service.go.
-
Complete Unfinished Implementations:
internal/app/work/commands.go: Implement theMergeWorkfunction.internal/app/search/service.go: Get content from the translation service.cmd/tools/enrich/main.go: The tool is broken and needs to be fixed.
Medium Priority
Performance
- Batch Weaviate Operations: Implement batching for Weaviate client operations to improve throughput.
- Add Performance Benchmarks: Create benchmarks for critical API paths and business logic to monitor performance over time.
Code Quality & Architecture
- Expand Weaviate Client: Add support for all models to the Weaviate client.
- Add Documentation: Improve code documentation and generate API documentation.
- Refactor Caching: Replace bespoke cached repositories with the decorator pattern in
internal/data/cache. - Improve Configuration Handling: Replace ad-hoc config with environment variable parsing and validation (e.g., using
koanforenvconfig).
Monitoring & Logging
- Add Monitoring: Add monitoring for background jobs and API endpoints.
- Add Linguistics Metrics: Add metrics for linguistics pipeline (analysis duration, cache hit/miss, provider usage).
Low Priority
- Refactor Transactional Runner: Refactor
RunTransactionalininternal/testutil/testutil.goto be more mock-friendly.