taiga-local-1780070634
This commit is contained in:
Regular → Executable
Regular → Executable
Regular → Executable
Regular → Executable
Regular → Executable
Regular → Executable
Regular → Executable
Regular → Executable
Regular → Executable
Regular → Executable
Regular → Executable
Regular → Executable
Regular → Executable
Regular → Executable
Regular → Executable
Regular → Executable
Regular → Executable
Regular → Executable
Regular → Executable
Regular → Executable
Regular → Executable
Regular → Executable
Regular → Executable
Regular → Executable
Regular → Executable
Regular → Executable
Regular → Executable
Regular → Executable
Regular → Executable
Regular → Executable
Regular → Executable
Regular → Executable
Regular → Executable
Regular → Executable
Regular → Executable
Regular → Executable
Regular → Executable
Regular → Executable
Regular → Executable
Regular → Executable
Regular → Executable
Regular → Executable
Regular → Executable
@@ -1,74 +0,0 @@
|
||||
---
|
||||
source: raw/schema.sql
|
||||
content_hash: 71b47e47b483834c887de14c76d5b16506d90ad64198d76a92a7b3731132dab8
|
||||
namespace: work
|
||||
last_synced: 2026-05-29
|
||||
confidence: 0.9
|
||||
tags: [schema, postgres, personal-os, database]
|
||||
---
|
||||
|
||||
# Personal OS — PostgreSQL Schema
|
||||
|
||||
The `personal_os` Postgres database is the durable backbone of Alex's Personal OS. It stores Asana state, agent annotations, file references, wiki content, and semantic memory. Extensions used: `vector` (pgvector) and `pg_trgm`.
|
||||
|
||||
## Core tables
|
||||
|
||||
### `tasks`
|
||||
One row per Asana task GID. Upserted on every sync. Tracks name, notes (text + html), due/start dates, completion state, section, assignee, creator, project, source, timestamps, sync cursors, and raw JSON. Indexed on modified_at, due_on (partial), section, assignee, source, completed, plus a trigram index on name for fuzzy search.
|
||||
|
||||
**`source` values** — discovery channel:
|
||||
- `my_tasks` — assigned to Alex, in My Tasks sections
|
||||
- `following` — Alex is a follower
|
||||
- `delegated` — Alex created it, someone else owns
|
||||
- `project` — project membership, otherwise uncovered
|
||||
|
||||
### `stories`
|
||||
Raw Asana event log per task — comments, assignments, due-date changes, etc. `resource_subtype` is Asana's event type. Stores plain and HTML body (HTML retains embedded task references). Indexed on task_gid, created_at, subtype, creator.
|
||||
|
||||
### `task_edges`
|
||||
Directed graph of inter-task relationships. `relation_type` covers `subtask`, `dependency`, `dependent`, `project_sibling`, `mention`. Primary key `(task_gid, related_gid, relation_type)`.
|
||||
|
||||
### `task_annotations`
|
||||
Agent or user-written metadata. Types: `irrelevant`, `watching`, `needs_action`, `snoozed`. Includes reasoning note, snooze date, and `annotated_by` (`agent` | `user`).
|
||||
|
||||
### `sync_state`
|
||||
One row per logical sync stream (`my_tasks`, `following`, `delegated`, `project:{gid}`, `workspace_events`). Holds last sync time, incremental cursor, and last full-sync time.
|
||||
|
||||
### `task_embeddings`
|
||||
pgvector 1024-dim embeddings (Voyage AI text-embedding-3 dims). HNSW cosine index.
|
||||
|
||||
## Convenience view
|
||||
|
||||
`active_tasks` — non-completed, non-irrelevant, non-snoozed tasks. Ordered by `source` priority (`my_tasks` → `delegated` → `following` → `project`), then due date, then modified.
|
||||
|
||||
## Wiki / memory tables
|
||||
|
||||
### `file_references`
|
||||
Sources for wiki ingest. Includes a macOS security-scoped `bookmark_data` BYTEA, cached path, optional URL, SHA256 `content_hash`, MIME, title, tags, JSONB `modification_log`, and `wiki_stale` flag that triggers next ingest run. Namespace constrained to `work`/`personal`/`family`.
|
||||
|
||||
### `wiki_pages`
|
||||
LLM-synthesized markdown (not verbatim copies). Tracks sources JSONB, `confidence` (default 0.8), `superseded_by` chain for versioning, `stale` flag, `last_synced_hash`, and 1536-dim embedding. ivfflat index recommended once row count > 1000. See [[wiki-ingest-process]] for the current file-based replacement that supersedes this table.
|
||||
|
||||
### `memory_store`
|
||||
Semantic memory from Discord, Claude sessions, manual entries. `type` ∈ `fact|preference|decision|person`. `source` ∈ `discord|claude|manual`. JSONB entities array, confidence, optional `expires_at` for non-permanent facts, 1536-dim embedding.
|
||||
|
||||
## Phase 0 additions (2026-04-27)
|
||||
|
||||
- `namespace TEXT NOT NULL DEFAULT 'work'` added to all core tables — supports work/personal/family separation.
|
||||
- `possibly_deleted BOOLEAN` and `last_seen_in_full_sync TIMESTAMPTZ` added to `tasks` so sync can detect Asana deletions.
|
||||
|
||||
## Notes on usage
|
||||
|
||||
- Stories are fetched after `tasks.stories_fetched_before` cursor — incremental.
|
||||
- `task_annotations` is the only table the agent writes to from inference — `tasks` and `stories` are sync-owned.
|
||||
- The `wiki_pages` table is effectively superseded by Obsidian + frontmatter `content_hash` (see [[personal-os-state-2026-04-27]] Decision 8). Schema retained for now.
|
||||
|
||||
## Key Points
|
||||
- Source-of-truth for Asana state is this DB, not the Asana API at query time.
|
||||
- `source` column on `tasks` drives prioritization in `active_tasks` view.
|
||||
- `namespace` column enables future Phase 2-family without schema churn.
|
||||
- pgvector tables are provisioned but not yet populated — Phase 2 work.
|
||||
- File-references / wiki-pages tables exist but Obsidian vault replaced them in practice.
|
||||
|
||||
## Related
|
||||
[[personal-os-state-2026-04-27]] [[personal-os-catchup-plan-2026-04-27]] [[wiki-ingest-process]]
|
||||
@@ -1,94 +0,0 @@
|
||||
# Weekly Review — Week of 2026-05-25
|
||||
|
||||
## ✅ Moved Forward
|
||||
|
||||
**New Top Priority project kicked off and shipping** — [iOS Address onboarding conflicts with unified input and ship AI onboarding winner](https://app.asana.com/0/0/1214592943696234) (due Jun 5). [Kick-off](https://app.asana.com/0/0/1214592851898713) ran async May 26 with Alessandro; scope locked, advisor on board, and four implementation PRs landed in week one:
|
||||
- [Ship AI onboarding winner (Treatment B) [0.5d]](https://app.asana.com/0/0/1215009192158955) — PR up
|
||||
- [Hide "stop chat" button in the input box [0.5d]](https://app.asana.com/0/0/1215009192158954) — PR up
|
||||
- [Hide Free plan • Upgrade in onboarding [0.5d]](https://app.asana.com/0/0/1215009192158952) — PR up, fade-in tweak in review
|
||||
- [Disable back button during duck.ai onboarding [1d]](https://app.asana.com/0/0/1215009192158960) — descoped (closed)
|
||||
|
||||
**Prior O-N project wrapped** — [iOS: Introduce a new screen that allows usage of the toggle with Search or Duck.ai set as the default toggle state](https://app.asana.com/0/0/1213320237636425) closed May 26. A/B/N experiment concluded with Treatment B as winner. [Postmortem](https://app.asana.com/0/0/1213320327587346) completed.
|
||||
|
||||
**Incident closed cleanly** — [Incident Postmortem: AI Agent use via likely external Discord service](https://app.asana.com/0/0/1214996544314182) completed May 28. Action items captured and assigned (GDPR follow-up scheduled, [Mattermost Bots request](https://app.asana.com/0/0/1214799615211686) submitted).
|
||||
|
||||
### Ship Reviews closed
|
||||
None this week. (Prior week's Ship Review for "Demo tracker blocking" closed May 20.)
|
||||
|
||||
### Tech Designs approved
|
||||
None this week.
|
||||
|
||||
### PRs merged / reviewed
|
||||
- [PR: Simplify tab access in TabBarViewController](https://app.asana.com/0/0/1215059168411571) — merged May 28
|
||||
- [PR: iOS: Demo tracker blocking after chat in onboarding](https://app.asana.com/0/0/1214425079182350) — testing steps refreshed, dax-logo blink fix landed, ready for review
|
||||
- Alessandro's UTI work PR (#4668 in apple-browsers) — approved & merged
|
||||
- 3 new PRs opened for current TP project (above)
|
||||
|
||||
### Rotations completed
|
||||
None active this week.
|
||||
|
||||
---
|
||||
|
||||
## 🔄 Didn't Move
|
||||
|
||||
Older active/planning items that didn't get a touch — mostly tech-debt / infra that loses out to project work:
|
||||
|
||||
- [Drop Storyboards in favor of code-initialized views](https://app.asana.com/0/0/1206472717181420) — active since Feb, no movement. Likely deprioritized in favor of project work; reassess whether it should stay `active`.
|
||||
- [UI Tests refinement](https://app.asana.com/0/0/1210056873095697) — active since Feb. Tied to broader test-infra effort; needs a champion or descoping.
|
||||
- [GH Workflow Failure - UI Tests](https://app.asana.com/0/0/1213729659282440) — active, last touched Mar 20. Worth a 30-min triage: still failing? Still relevant?
|
||||
- [PR Check failing on main: testWhenTabWithConnectionLostErrorActivatedAndReloadFailsAgain](https://app.asana.com/0/0/1213975496167929) — due Apr 22, modified May 13. Either fix or quarantine the test.
|
||||
- [Cursor integration: configure VSCode support](https://app.asana.com/0/0/1209808486380252) — active since May 7, no progress. Low-stakes; close or schedule.
|
||||
|
||||
Likely cause: TP project work + the AI Agent incident consumed the week. Recommend a Quick-Wins-style sweep on one of these next week if the schedule allows.
|
||||
|
||||
---
|
||||
|
||||
## 🔗 Open Loops Carrying Forward
|
||||
|
||||
**Current TP project — live PRs heading into review/ship next week:**
|
||||
- [Hide "stop chat" button](https://app.asana.com/0/0/1215009192158954) — due May 29 (today)
|
||||
- [Ship AI onboarding winner (Treatment B)](https://app.asana.com/0/0/1215009192158955) — needs Ship Review (per Alex's May 28 status)
|
||||
- [Hide Free plan • Upgrade in onboarding](https://app.asana.com/0/0/1215009192158952) — PR in review with fade-in fix
|
||||
- [Persist 'You've got this' dialogue in non-focused state [2d]](https://app.asana.com/0/0/1215009192158950) — due Jun 1
|
||||
- [Try Visiting a Site: Background [1d]](https://app.asana.com/0/0/1214828145455342) — due Jun 1
|
||||
- [Address Bar Toggle Selection: Animated Assets [2-3d]](https://app.asana.com/0/0/1214627423981798) — due Jun 4 (asset dependency)
|
||||
|
||||
**Incident follow-ups (open):**
|
||||
- [Follow-up with Discord on GDPR request](https://app.asana.com/0/0/1215193471130270) — self-scheduled for ~Jun 15 (GDPR submitted May 12, still no response)
|
||||
- [Create Mattermost Bots request](https://app.asana.com/0/0/1214799615211686) — submitted, awaiting response
|
||||
|
||||
**Other:**
|
||||
- [DRI <> Project Advisor async for Demo tracker blocking](https://app.asana.com/0/0/1213551072611261) — still open; consider closing if the project shipped.
|
||||
- [[ON HOLD] iOS: Demo tracker blocking after chat in onboarding](https://app.asana.com/0/0/1213551050320249) — marked on-hold; revisit status next week.
|
||||
|
||||
**Ship Reviews / Tech Designs awaiting your re-review:** None.
|
||||
**Delegated tasks overdue:** None surfaced.
|
||||
**Incidents without postmortem:** None.
|
||||
**PFRs awaiting decision summary:** None.
|
||||
|
||||
---
|
||||
|
||||
## 📅 Next Week Setup
|
||||
|
||||
**TP Suggestion**: Continue [iOS Address onboarding conflicts with unified input and ship AI onboarding winner](https://app.asana.com/0/0/1214592943696234). Reasoning: project due Jun 5; 3 PRs in review and 3 tasks still to start. Treatment B ship needs to clear Ship Review next week to hold the schedule — and you're partly AFK for WWDC Jun 8–12, so the project must close before then. This is the obvious TP, keep it.
|
||||
|
||||
**Rotation**: None starting next week.
|
||||
|
||||
**OOO watch** — heads-up on collaborators:
|
||||
- **Dominik (career advisor)** AFK Jun 1–3 (LDX3) and Jun 4–5 (public holiday). Effectively gone Mon–Fri. **1:1 likely skips** — confirm reschedule.
|
||||
- **Sabrina, Lorenzo, Fernando, Pete, Marcos** all at LDX3 Jun 1–3. Several iOS/macOS folks unavailable early week — anything needing their review should ship today or wait.
|
||||
- **You** — [Partly AFK Jun 8–12 for WWDC'26](https://app.asana.com/0/0/1212684797790491). Two weeks out, but the TP project due Jun 5 needs to close before WWDC week.
|
||||
|
||||
**1:1 with Dominik** — last agenda was [May 26](https://app.asana.com/0/0/1214933759913756). Next slot likely Jun 9+ given Dominik's OOO. Items to bring:
|
||||
- TP project ship status (Treatment B Ship Review, project close-out before WWDC)
|
||||
- AI Agent incident postmortem outcomes — Mattermost Bots + Discord GDPR action items
|
||||
- DDG Mac runner/AI worker infrastructure (carry-over from last agenda)
|
||||
- Pre-WWDC handoff plan for in-flight work
|
||||
|
||||
---
|
||||
|
||||
## 🏆 Wins
|
||||
|
||||
1. **Closed an O-N project end-to-end** — A/B/N experiment ran, winner identified, [project wrap-up](https://app.asana.com/0/0/1213320237636425) posted, and [postmortem](https://app.asana.com/0/0/1213320327587346) shipped. Clean close-out.
|
||||
2. **New TP project hit the ground running** — [scoped, kicked off, and 4 PRs landed in week 1](https://app.asana.com/0/0/1214592943696234). On track for the 2-week window.
|
||||
3. **Incident postmortem done well** — [AI Agent Discord incident](https://app.asana.com/0/0/1214996544314182) closed with concrete follow-ups (GDPR, Mattermost Bots, O-T project link). Positive notes from leadership on the [Full Analysis](https://app.asana.com/0/0/1214900901154134) doc.
|
||||
Reference in New Issue
Block a user