Skip to content

Commit 147ff92

Browse files
authored
Merge pull request #457 from jmbish04/codex/open-pr-all-changes-20260331
2 parents 2240bd3 + d27c780 commit 147ff92

28 files changed

Lines changed: 491 additions & 1125 deletions

.github/workflows/drizzle-schema-report.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,10 @@ jobs:
2222
python-version: '3.12'
2323

2424
- name: Ensure Script is Executable
25-
run: chmod +x scripts/audit_drizzle_schema.py
26-
25+
run: chmod +x scripts/db/audit_drizzle_schema.py
26+
2727
- name: Run Schema Analysis
28-
run: python scripts/audit_drizzle_schema.py --output drizzle-schema-report.md
28+
run: python scripts/db/audit_drizzle_schema.py --output drizzle-schema-report.md
2929

3030
- name: Upload Report Artifact
3131
uses: actions/upload-artifact@v4

.github/workflows/jules-merge-conflicts.txt

Lines changed: 0 additions & 86 deletions
This file was deleted.

AGENTS-REVIEW.md

Lines changed: 50 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,9 @@ Execute the following checks sequentially. **Remember to update \`frontend-test-
7474
- [ ] **Verify Interaction**:
7575
- Click the \`+\` button to create a new thread.
7676
- Open the Agent Selector dropdown (navbar) and ensure specific personas (e.g., \`Orchestrator\`, \`CF Agents SDK\`) are listed.
77-
- Send a simple "Hello" message and verify it hits the WebSocket backend and a response returns. Verify: Is the AI/agent responding to messages via WebSocket?
77+
- Send a simple "Hello" message and verify it hits the WebSocket backend and a response returns.
78+
- **AI Response Check**: Does the AI/agent actually respond with meaningful content (not just an error or empty message)? Time how long the response takes.
79+
- **Agent Selector Check**: Open the Agent Selector dropdown and confirm specialized personas are listed (e.g., `Orchestrator`, `CF Agents SDK`, `Cloudflare Docs`). Select a different agent and verify the chat context switches.
7880
- 💾 *Save result to JSON.*
7981

8082
### 5. Research & Drafts (\`/research\`)
@@ -111,68 +113,82 @@ Execute the following checks sequentially. **Remember to update \`frontend-test-
111113
- [ ] **Verify Interaction**: Expand at least one API endpoint block to verify the parameter/schema documentation loaded.
112114
- 💾 *Save result to JSON.*
113115

114-
115-
116116
### 10. Learning Dashboard (`/learning/dashboard`)
117117
- [ ] **Action**: Navigate to `/learning/dashboard`.
118-
- [ ] **Verify Rendering**: Charts render (InsightTrendChart, PatternDistributionChart), immunity indicator pulse dot visible, navigation cards to insights/sessions/babysitter/showcase, bg-zinc-950 background, NO visible borders.
119-
- [ ] **Verify Interaction**: Click each navigation card and verify it routes correctly.
118+
- [ ] **Verify Rendering**: Ensure the page loads with a `bg-zinc-950` background. Verify the `InsightTrendChart` (Recharts AreaChart) and `PatternDistributionChart` (Recharts BarChart) render with data or empty-state placeholders. Look for the **Immunity Indicator** pulse dot (top-right corner) — it should be a small animated circle (green, amber, or zinc).
119+
- [ ] **Verify Interaction**:
120+
- Confirm **NO visible borders** — cards should use `bg-zinc-900` tonal depth only.
121+
- Click each of the 4 navigation cards (Insight Ledger, Audit Log, Babysitter HUD, Showcase) and verify they route to `/learning/insights`, `/learning/sessions`, `/learning/babysitter`, and `/learning/showcase` respectively.
122+
- Verify chart axis/tooltip labels use high-contrast text (`fill="#fafafa"` or equivalent light color).
120123
- 💾 *Save result to JSON.*
121124

122125
### 11. Insight Ledger (`/learning/insights`)
123126
- [ ] **Action**: Navigate to `/learning/insights`.
124-
- [ ] **Verify Rendering**: Filter bar (patternType, severity, status), InsightCard grid rendering, pagination, severity badges on cards.
125-
- [ ] **Verify Interaction**: Interact with filters.
127+
- [ ] **Verify Rendering**: Look for a grid of `InsightCard` components. Each card should show: title, severity badge (1–5), pattern type, and a status indicator. If no data exists, verify empty-state is handled gracefully (no crash, no infinite spinner).
128+
- [ ] **Verify Interaction**:
129+
- Locate the filter bar — it should have controls for `patternType` (doom_loop, anti_pattern, standard_violation, best_practice), `severity` (1–5), and `status` (open, acknowledged, resolved).
130+
- Toggle filters and verify the grid updates.
131+
- If pagination exists, click through pages.
126132
- 💾 *Save result to JSON.*
127133

128134
### 12. Audit Log (`/learning/sessions`)
129135
- [ ] **Action**: Navigate to `/learning/sessions`.
130-
- [ ] **Verify Rendering**: SessionsTable renders, collapsible rows, empty state handling.
131-
- [ ] **Verify Interaction**: Expand a collapsible row to verify message samples or metadata.
136+
- [ ] **Verify Rendering**: Expect a `SessionsTable` with columns: Session ID, Trigger Type, Insights Found, Duration, Status badge. If empty, verify the empty state renders cleanly.
137+
- [ ] **Verify Interaction**:
138+
- If rows are present, click on a row to expand/collapse it (should show message samples, repoless flag).
139+
- Verify no unhandled errors in the console.
132140
- 💾 *Save result to JSON.*
133141

134142
### 13. Babysitter HUD (`/learning/babysitter`)
135143
- [ ] **Action**: Navigate to `/learning/babysitter`.
136-
- [ ] **Verify Rendering**: Active session cards, loop detection score color coding, Manual Override button present.
137-
- [ ] **Verify Interaction**: Click Manual Override button — verify it calls `POST /api/learning/upscale` and shows state transitions (Sending... → Override sent.).
144+
- [ ] **Verify Rendering**: Expect `BabysitterSessionCard` components showing active Jules sessions. Each card should display: session ID, loop detection score (0–10 with color coding), last message preview, intervention count.
145+
- [ ] **Verify Interaction**:
146+
- Locate the **"Manual Override"** button on a session card (or a global override button).
147+
- Click it and verify the state transition: button text should change from "Manual Override" → "Sending..." → "Override sent." (this calls `POST /api/learning/upscale`).
148+
- Verify the page refreshes or polls every ~30 seconds (check for `setInterval` behavior).
138149
- 💾 *Save result to JSON.*
139150

140151
### 14. Standardization Showcase (`/learning/showcase`)
141152
- [ ] **Action**: Navigate to `/learning/showcase`.
142-
- [ ] **Verify Rendering**: Rule cards render, "Trigger Standardization Upscale" CTA button present.
143-
- [ ] **Verify Interaction**: Click "Trigger Standardization Upscale" CTA button.
153+
- [ ] **Verify Rendering**: Look for cards listing `.agent/rules/*.md` files — each card should show a rule name, summary, and adherence score.
154+
- [ ] **Verify Interaction**:
155+
- Locate the **"Trigger Standardization Upscale"** CTA button.
156+
- Click it and verify it triggers an action (API call to `/api/learning/upscale` or similar).
157+
- If no rules are loaded, verify empty state handling.
144158
- 💾 *Save result to JSON.*
145159

146160
### 15. Workshop (`/workshop`)
147161
- [ ] **Action**: Navigate to `/workshop`.
148-
- [ ] **Verify Rendering**: WorkshopWizard renders (verify NOT a black screen), wizard steps visible.
149-
- [ ] **Verify Interaction**: Document what renders (this page has historically been broken).
162+
- [ ] **Verify Rendering**: **CRITICAL** — This page has historically rendered as a black screen. Verify that the `WorkshopWizard` component actually mounts and displays content. Look for wizard steps, form fields, or a workshop interface.
163+
- [ ] **Verify Interaction**:
164+
- If the wizard loads, attempt to interact with the first step (select a project, choose an action, etc.).
165+
- If the page is black/blank, document exactly what the console shows (errors, failed imports, etc.).
150166
- 💾 *Save result to JSON.*
151167

152-
### 16. Health Service Verification (bash/curl)
153-
- [ ] **Action**: Run curl commands against the live worker at `https://core-github-api.hacolby.workers.dev`:
154-
- `GET /api/health`
155-
- `GET /api/projects/sentinel/health`
156-
- `GET /api/learning/health`
157-
- `GET /api/projects/sentinel/status`
158-
- `GET /api/learning/insights`
159-
- `GET /api/learning/sessions`
160-
- `GET /api/learning/insights/global`
161-
- [ ] **Verify Rendering**: Document HTTP status codes and response bodies.
162-
- [ ] **Verify Interaction**: N/A
168+
### 16. Health Service Verification (API/curl)
169+
- [ ] **Action**: Test health and learning API endpoints via direct HTTP requests against `https://core-github-api.hacolby.workers.dev`. For each endpoint below, document the HTTP status code and a summary of the response body.
170+
- [ ] **Endpoints to test**:
171+
- `GET /api/health` — Main system health. Expect `200` with status indicators.
172+
- `GET /api/projects/sentinel/health` — Sentinel subsystem health. Expect `200`.
173+
- `GET /api/learning/health` — Learning pipeline health. Expect `200` with `{ status, lastRun, insightCount }`.
174+
- `GET /api/projects/sentinel/status` — Sentinel live status + task counts. Expect `200`.
175+
- `GET /api/learning/insights` — List all learning insights. Expect `200` with array.
176+
- `GET /api/learning/sessions` — List learning sessions. Expect `200` with array.
177+
- `GET /api/learning/insights/global` — Aggregate pattern counts. Expect `200` with grouped data.
178+
- [ ] **Verify**: Parse the JSON responses. Are all subsystems reporting healthy? Document any failures or unexpected responses.
163179
- 💾 *Save result to JSON.*
164180

165181
### 17. Sentinel API Endpoints (Authenticated)
166-
- [ ] **Action**: curl with `Authorization: Bearer $AGENTIC_WORKER_API_KEY`:
167-
- `GET /api/projects/sentinel/tasks/available`
168-
- `GET /api/projects/sentinel/status`
169-
- `POST /api/projects/sentinel/ingest` with test payload
170-
- Auth rejection test: curl with bad key, expect 401
171-
- [ ] **Verify Rendering**: Document HTTP status codes and response bodies.
172-
- [ ] **Verify Interaction**: N/A
182+
- [ ] **Action**: Test authenticated Sentinel endpoints. These require `Authorization: Bearer $AGENTIC_WORKER_API_KEY` header.
183+
- [ ] **Endpoints to test**:
184+
- `GET /api/projects/sentinel/tasks/available` — List unclaimed tasks. Expect `200` with array.
185+
- `GET /api/projects/sentinel/status` — System status with task counts. Expect `200`.
186+
- `POST /api/projects/sentinel/ingest` with body `{"conversations":[{"role":"user","content":"test"}]}` — Expect `200` or `202`.
187+
- [ ] **Auth rejection test**: Send a request with `Authorization: Bearer bad-key-12345` to any sentinel endpoint. Expect `401 Unauthorized`.
188+
- [ ] **Verify**: Confirm that valid API key returns data and invalid key returns 401.
173189
- 💾 *Save result to JSON.*
174190

175191
---
176192

177193
## 🏁 Finalization
178-
Once all tests are completed, confirm that `frontend-test-results.json` contains exactly 17 test records. Output a brief final markdown summary in your conversational response detailing which pages failed and the likely cause (e.g., "500 Internal Server Error", "Infinite React Spinner", "WebSocket Timeout").
194+
Once all tests are completed, confirm that \`frontend-test-results.json\` contains exactly 17 test records. Output a brief final markdown summary in your conversational response detailing which pages failed and the likely cause (e.g., "500 Internal Server Error", "Infinite React Spinner", "WebSocket Timeout").

0 commit comments

Comments
 (0)