Saving notes

This commit is contained in:
Scott Idem
2026-02-03 19:10:31 -05:00
parent 2fe783784c
commit ac516c4d77

View File

@@ -44,11 +44,10 @@
- **Hiding Internal Paths:** `subdirectory_path` is hidden from public-facing API responses via Pydantic `Field(exclude=True)`.
### 🧠 Key Technical Learnings (Cumulative)
- **Circular Dependencies Fixed**: Successfully resolved the fragile startup dependency chain by isolating Auth models and using strictly deferred DB imports in a dedicated `dependencies_v3.py` module.
- **Bootstrap Paradox Solved**: Implemented a guest-access exception for `site_domain` search, allowing the frontend to resolve site context without a JWT.
- **V3 Searchable Fields**: `searchable_fields` must explicitly include integer ID fields (e.g., `event_id`) to ensure valid numeric filters are not blocked by the V3 search security layer.
- **NULL Logic in Filters**: Confirmed that explicit frontend filters like `hide: false` will FAIL to match `NULL` database values. Rely on the API's built-in `hidden=not_hidden` parameter for robust handling.
- **Vision ID Safety Net**: Enhanced `lookup_id_random_pop` to resolve random string IDs found in any `*_id` field, ensuring "Vision" style payloads are correctly converted to integers.
- **Modularization Standard**: Proven pattern for shrinking monolithic routers: Registry -> `app/object_definitions/`, Templates/Logic -> `app/methods/`. Reduced `api_crud.py` and `hosted_file.py` by >75%.
- **Vision ID Persistence**: Pydantic `Field(exclude=True)` strips fields from `.dict()` by default. In methods like `create_hosted_file_obj`, these must be explicitly re-included if they are internal DB fields (like `subdirectory_path`).
- **Universal ID Resolution**: `GET /v3/action/hosted_file/{id}/download` now intelligently resolves container IDs (`event_file`, `archive_content`) to physical binaries.
- **Temporary Access Patterns**: Implemented `?key=` and `?site_key=` (using `access_key`) for unauthenticated Read-Only file access to unblock frontend components like `<img>`.
---
@@ -56,65 +55,31 @@
*This section tracks active projects (1-2 weeks scope). It answers "Why are we doing this?"*
### 📩 In-Flight RAR Requests
- [ ] **mcp_agent**: Real-world test of `ae_field_manage.py` (ID: 153357623).
- [ ] **codebase_investigator**: Review report for Aether extension and journal management (ID: 155435511).
### 🎯 Strategic Goals (Current Sprint)
- **Primary:** OSIT_dev Environment Optimization & Context Stabilization (Template v1.2 Adoption).
- **Secondary:** ID Vision Phase 2 Migration and V3 API Migration (Contacts/Clients).
- **Active:** Zoom Events Integration for upcoming Lead Retrieval/Badge Printing demo.
### 🚧 Active Workstreams
- **[Aether V4]:** Architecture standards formalized in `ARCH__V4_CORE_STANDARDS.md`. Ready for lifecycle field migration.
- **[Data Store]:** V3 Implementation complete. Support for cascading code lookups and limit overrides is live. (ID: 201312846 - DONE).
- **[ID Vision]:** Phase 2 complete. Strictly enforced string-ID standardization for Page, Post, Person, Journal, Contact, and User models. (ID: 161311118 - DONE).
- **[Infrastructure]:** Pydantic V2 Migration Impact Analysis (Technical Debt).
- **[Journals]:** UI: Implementation of Quick Add & Append/Prepend (ID: 185821382).
### 🧠 Recent Decisions
- **Cascading Data Store Logic:** Validated the hierarchy (Object > Account > Global) and implemented a `limit` override to allow auditing of fallback layers.
- **ID Hardening:** Refined `root_validator` logic across core models to explicitly handle stringified 'NULL' values from the database, preventing Pydantic coercion errors.
- **Search Optimization:** Standardized on `default_qry_str` for optimized fulltext searching.
- **[Zoom Events]:** initial integration complete (OAuth2, Sync logic, Ticket retrieval). Pending real credentials.
- **[Refactor]:** Reduced monolithic files (>800 lines). `api_crud.py` and `hosted_file.py` COMPLETED. `api_crud_v2.py` and `person_methods.py` PENDING.
- **[Test Suite]:** E2E suite consolidated into primary functional suites (Search, Auth, Lifecycle, Vision).
---
## 3. 🧠 Short Term Memory (Session Context)
*This section is the "Scratchpad" for the current interaction. It is cleared or summarized often.*
- **Status:** Operational / Stabilized
- **Last Action:** Finalized WebSockets V3 implementation, including Nginx proxy optimization and real-world multi-client verification.
- **Status:** Operational / Refactored
- **Last Action:** Finalized monolithic refactor and initial Zoom Events integration.
- **Achievements:**
- Launched WebSockets V3 with granular Redis routing (solving the "noisy neighbor" problem).
- Standardized real-time message schema (`WS_Message_V3`).
- Updated Nginx templates to support `/v3/ws` and `localhost` Host routing.
- Created comprehensive integration test suite for gateway/routing verification.
- Delivered `GUIDE__V3_FRONTEND_WEBSOCKETS.md` to `agents_sync`.
- **Immediate Next Step:** Monitor frontend adoption and begin system-wide lifecycle field migration.
- Reduced `api_crud.py` (1843 -> 143 lines).
- Reduced `hosted_file.py` (1596 -> 361 lines).
- Implemented Zoom Events OAuth2 and Sync backend.
- Verified Full File Lifecycle (Upload -> Download -> Delete) via standardized E2E test.
- **Immediate Next Step:** Finalize wrap-up by registering new agent 'Inara' in `agents_sync`.
---
@@ -139,4 +104,4 @@
3. **Syntax Validation:** Run `python3 -m py_compile <modified_file>` immediately.
4. **Process Cycle:** Restart the Docker FastAPI service: `docker restart aether_container_env-ae_api-2`.
5. **Empirical Testing:** Execute `curl` commands and inspect logs: `tail -n 20 ~/OSIT_dev/aether_container_env/logs/ae_api/aether_api.log`.
6. **Finalize:** Commit changes with a descriptive message and sync documentation.
6. **Finalize:** Commit changes with a descriptive message and sync documentation.