Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 8 additions & 1 deletion .claude/board/ISSUES.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,13 @@
> Open blockers and cross-repo follow-ups. Append new entries at the top;
> change only the `Status` line of an existing entry.

## ISS-LG-GRAPHFLOW-LANCE-PATHS — graph-flow-lance cannot be consumed by git

- **Status:** OPEN (found 2026-10-14, rs-graph-llm `5b54301`; upstream ask)
- **Where:** rs-graph-llm `crates/graph-flow-lance` (#27), excluded from that workspace.
- **What:** the crate is the shape D-FLOW-1 needs: graph-flow tasks whose `Context` carries generation-checked plan and result handles, a fan-out as one mask-set coordinate folded in one pass, a checkpoint that fails closed on a newer source generation. It path-deps `lance-graph-report` and two `z8run` siblings, so a HubSPO-rs build cannot fetch it, and its handle generation is `z8run-lance`'s `Envelope.generation` (u32; see ISS-LG-REPORT-GENERATION-WIDTH).
- **Ask:** git coordinates for `graph-flow-lance` and `z8run-lance` (the same move mask-risc made in lance-graph #1457). Until then D-FLOW-1 designs against it without depending on it.

## ISS-LG-METHOD-TABLE-PROBE-ONLY — the declared-method table is not consumable

- **Status:** WITHDRAWN 2026-10-13: there is no table left to ask for. lance-graph #1524 (D-CMR-RESET, `9cfdf2a3`) moved the method layer to a backup branch: it was a second algebra beside the folds, lowered per call with fresh scratch, and `billable_hours` measured 430–480 µs against 283 µs for a scalar row loop. The rebuild (D-CMR, open) makes a class method a binding `classid × WideFieldMask → an existing compiled fold`, which is what HubSPO-rs's Quack programs already are. D-ACT-4 and the D-QRY-3/6 measures therefore build on compiled Quack programs now and gain a name when D-CMR lands. Earlier: OPEN (found 2026-10-12, lance-graph `42fa2a34`; upstream ask, not built here)
Expand Down Expand Up @@ -112,7 +119,7 @@

## ISS-LG-PREFLIGHT-STALE-PINS — consumer preflight whitelists old lance pins

- **Status:** REOPENED 2026-10-11, upstream text only; this workspace is correct. lance-graph #1436 set the preflight to `12.*`/`0.39.*`; #1437 then moved the fleet to lance 13 / lancedb 0.40 / Rust 1.99.0, so `ogar-consumer-preflight.md:45` is stale again. HubSPO-rs floats `13.*`/`0.40.*` (#6). Ask: the preflight points at lance-graph `CLAUDE.md` § Key Dependencies instead of restating numbers, so the next major bump cannot stale it.
- **Status:** STILL OPEN 2026-10-14 at lance-graph `c21bd165`: the preflight paragraph reads `lance 12.*` · `lancedb 0.39.*` while the fleet is on 13 / 0.40. Earlier: REOPENED 2026-10-11, upstream text only; this workspace is correct. lance-graph #1436 set the preflight to `12.*`/`0.39.*`; #1437 then moved the fleet to lance 13 / lancedb 0.40 / Rust 1.99.0, so `ogar-consumer-preflight.md:45` is stale again. HubSPO-rs floats `13.*`/`0.40.*` (#6). Ask: the preflight points at lance-graph `CLAUDE.md` § Key Dependencies instead of restating numbers, so the next major bump cannot stale it.
- **Where:** lance-graph `.claude/knowledge/ogar-consumer-preflight.md`.
- **What:** it whitelists `lance =9.0.0 / lancedb =0.33.0`; lance-graph
`CLAUDE.md` floats `12.*` / `0.39.*`. Approved 2026-10-10 (OD-11): follow
Expand Down
6 changes: 3 additions & 3 deletions .claude/board/STATUS_BOARD.md
Original file line number Diff line number Diff line change
Expand Up @@ -46,11 +46,11 @@

| D-id | Deliverable | Size | Status | Evidence |
|---|---|---|---|---|
| D-QRY-1 | Filter compiler: HubSpot filter groups (AND within group, OR across groups; operators EQ/NEQ/LT/…/HAS_PROPERTY/CONTAINS_TOKEN/IN/BETWEEN) → Quack program | L | Shipped | `hubspo-store::catalog` + `hubspo-query::filter`; 600 random filter sets equal a plain-loop oracle on mask-risc; #19 |
| D-QRY-1 | Filter compiler: HubSpot filter groups (AND within group, OR across groups; operators EQ/NEQ/LT/…/HAS_PROPERTY/CONTAINS_TOKEN/IN/BETWEEN) → Quack program | L | Shipped | 2026-10-14: lance-graph #1546 `lance-graph-relalg` (D-RA-1) normalizes a filter before it runs and answers a contradictory one as `Empty` without a program; D-CMR-1 moves that set algebra into the contract. Adopt it there, not from the prototype crate; `hubspo-store::catalog` + `hubspo-query::filter`; 600 random filter sets equal a plain-loop oracle on mask-risc; #19 |
| D-QRY-2 | Lists: active (incremental on version delta) + static (stored mask); membership history | L | Shipped | `hubspo-query::list` (refresh, static add/remove/members, added/removed); tests vs full recomputation. P-LIST-1 2.6 ms at 10M; P-SPARSE-1 1.93 ms, 257 KiB flat at 10M. Storage of list masks lands with D-STO-1 |
| D-QRY-3 | Saved views + board view (report pivot over pipeline × stage) | M | In progress | board half shipped (#21): `hubspo-query::board` (count + amount per stage as two `GroupReduce` programs); saved-view half open: `SavedView` value type + sort at the edge over existing Quack programs (`Agg::Rows` storage order, `Count` threshold bisection for I32, `GroupReduce Count` for coded lanes); ORDER BY is asked upstream only if a page-cost probe fails |
| D-QRY-4 | Quack lowering of callcenter's `ParsedQuery` (the upstream DataFusion `parsed_query_to_plan` is an unimplemented stub) | M | Queued | |
| D-QRY-5 | Association-traversing filters ("contacts whose company has an open deal"): Quack `Semijoin` over edge lanes for one hop; multi-hop needs cypher-quack shapes that do not exist yet → upstream request first | L | Queued | |
| D-QRY-5 | Association-traversing filters ("contacts whose company has an open deal"): Quack `Semijoin` over edge lanes for one hop; multi-hop needs cypher-quack shapes that do not exist yet → upstream request first | L | Queued | 2026-10-14: the hop is D-CMR-5, preimage `f⁻¹(S)` under a proven mapping (lance-graph `d-cmr-concept-chain-normalization-v1`), not chained key reads (withdrawn in #1524 / ndarray #359). One hop is ready on the existing Quack `Semijoin`; multi-hop waits on D-CMR-5 rather than on new cypher-quack shapes |
| D-QRY-6 | Reports: single-object, cross-object, funnel, time-series, attribution skeleton on `lance-graph-report` | XL | Queued | |
| D-QRY-7 | Full-text search over records (Tantivy, reference-indexed, reconciled from the store — tesseract-paperless `search` pattern) | M | Queued | |

Expand Down Expand Up @@ -97,7 +97,7 @@

| D-id | Deliverable | Size | Status | Evidence |
|---|---|---|---|---|
| D-FLOW-1 | Workflow model: trigger (criteria / event / schedule / webhook), enrolment, re-enrolment, actions, branches (if/then, value equals, A/B), delays (fixed, until date, until event) as graph-flow graphs | XL | Queued | |
| D-FLOW-1 | Workflow model: trigger (criteria / event / schedule / webhook), enrolment, re-enrolment, actions, branches (if/then, value equals, A/B), delays (fixed, until date, until event) as graph-flow graphs | XL | Queued | 2026-10-14: rs-graph-llm #27 `graph-flow-lance` — graph-flow tasks over lance-graph-report folds, the Context holds generation-checked handles, never rows (ISS-LG-GRAPHFLOW-LANCE-PATHS) |
| D-FLOW-2 | Enrolment triggers: mask delta between published versions ∩ criteria from a stored offset; due-run mask for delays and schedules; watcher as wake-up only (H-ADR-7, amended 2026-10-10) | L | Queued | P-FLOW-1 2026-10-10: commit → enrolled 13.8 ms p50 / 27.1 ms p99 at 1k workflows |
| D-FLOW-3 | Action library: set property, create record/task, send email, add to list, webhook, rotate owner, delay, branch, custom code (loco program) | L | Queued | |
| D-FLOW-4 | Sequences: steps (email / task / call), stalwart future-release for scheduled sends, unenrol on reply/meeting booked (MTA hook / webhook) | L | Queued | |
Expand Down
Loading