feat: add API key color assignment, auto-persist, AGENTS.md
This commit is contained in:
@@ -0,0 +1,45 @@
|
||||
# AGENTS.md
|
||||
|
||||
## Project Overview
|
||||
- **Primary Language**: C# (.NET 8 Console Application)
|
||||
- **Key Libraries**: RestSharp, Newtonsoft.Json, System.Data.SQLite, Microsoft.Extensions.Configuration
|
||||
- **Purpose**: Tumblr API data harvester for collecting notes, posts, likes, and replies, storing results in SQLite.
|
||||
|
||||
## Architectural Patterns
|
||||
- CLI entry point in `Program.cs` with workflow orchestration
|
||||
- `DataAccess.cs`: Database operations, `ApiKeyPool` (API key management), `APIAccess` (Tumblr client)
|
||||
- `ResponseNotes.cs`: Tumblr API response models
|
||||
- Round-robin API key rotation with rate-limit tracking
|
||||
- Automatic console color assignment per API key for output differentiation
|
||||
|
||||
## Developer Guidelines
|
||||
|
||||
### Code Formatting
|
||||
- 4-space indentation, no tabs, match existing C# style
|
||||
- PascalCase for public members, camelCase for locals
|
||||
- Minimize code comments unless explicitly requested
|
||||
- Use only existing project libraries; no new dependencies without confirmation
|
||||
- Match accessibility modifiers (`public` for models, `internal` for helpers)
|
||||
|
||||
### Error Handling
|
||||
- Wrap file/network operations in `try-catch`
|
||||
- Log non-critical errors (e.g., config write failures) with `[Warning]` prefix
|
||||
- Preserve console color state: use save/restore pattern for temporary color changes
|
||||
- API rate limits must use `ApiKeyPool.MarkRateLimited()`/`MarkAvailable()`
|
||||
|
||||
### Testing
|
||||
- No existing test suite; use xUnit if adding tests
|
||||
- Test critical logic: `ApiKeyPool` init, color parsing, config persistence
|
||||
- Avoid testing one-off CLI workflows
|
||||
|
||||
### Git Commit Messages
|
||||
- Imperative mood ("Add feature" not "Added feature")
|
||||
- Prefix with type: `feat:`, `fix:`, `chore:`, `docs:`
|
||||
- Keep messages under 72 characters
|
||||
- Never commit sensitive data (API keys/tokens)
|
||||
|
||||
### API Key Color Rules
|
||||
- Unconfigured keys auto-assign colors from a preset palette
|
||||
- Auto-assigned colors persist to `appsettings.json`
|
||||
- All output for an active key uses its assigned color
|
||||
- Temporary color changes (e.g., errors) must restore the key's color afterward
|
||||
Reference in New Issue
Block a user