2.2 KiB
2.2 KiB
Project Memory & Knowledge Base
Projects
Buglab
- Project Name: buglab
- Goal: C++ pathfinding & maze optimization project for buglab.ru.
- Grid size: 19 x 29 cells.
- Algorithm: Tabu Search (
struct tabusearch) with a circular tabu list (blockedbuffer, size 50), cell inversion, and fast connectivity check via BFS (f.check()). The older Simulated Annealing approach is deprecated and abandoned. - Persistence: SQLite database (
storage/labyrinths.db) for tracking results, scores, and metadata.storage/and build artifacts are strictly excluded via.gitignore.
Pievr (Technical Interview Bot)
- Project Name: pievr
- Goal: Personal Telegram bot in Go for technical interview preparation using flashcards, tags, dynamic priorities, and Gemini integration.
- Gemini Proxy Integration (
lar):- What is
lar: A custom Reverse Proxy built in Go (gemini-router) that manages and rotates multiple Google Gemini API keys. - Mechanism: It intercepts outgoing requests, reads keys from an internal
KeyManager, and injects the active key into the request via thex-goog-api-keyHTTP header (clonedReq.Header.Set("x-goog-api-key", key.ApiKey())). - Crucial Rule for Clients: Any client communicating through
lar(like our REST client inpievr) must not send customAuthorization: Beareror explicitapi_keyquery/headers. Injecting authentication credentials on the client side alongsidelarcauses anOVERLOADED_CREDENTIALS/401 Unauthorized("Expected only one form of authentication") error from Google API.
- What is
Workflow & Constraints
- Strict Git Workflow: All changes, bugfixes, and experiments must be made in separate feature branches and merged via Pull Requests.
- Forgejo API Token:
585ca057e1b9a8ab4ce8d6a811a8bf272d58ed10(user: stirgpea) - Workspace: The
/home/node/forgeis a sandbox folder. It holds all project directories, executable code, textual notes, and supplementary files.
Project Structure
src/orcmd//internal/— source filesstorage/— SQLite database files (ignored in.gitignore)docs/— project documentation and notesREADME.md— project overview.gitignore— excludes build artifacts andstorage/,junk/