Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
42 commits
Select commit Hold shift + click to select a range
50b5ef3
docs(26): capture phase context
tazarov Apr 14, 2026
66bee2b
docs(state): record phase 26 context session
tazarov Apr 14, 2026
38b4a76
docs(26): research phase twelvelabs async embedding
tazarov Apr 14, 2026
860627e
docs(26): add validation strategy
tazarov Apr 14, 2026
3cefba9
docs(26): create phase plan
tazarov Apr 14, 2026
03f9bd4
docs(26): cross-AI review
tazarov Apr 14, 2026
7584927
docs(26): fix stale 3-endpoint reference in CONTEXT line 14
tazarov Apr 14, 2026
e97d382
docs(26): revise plan 01 for review feedback — preserve raw failure p…
tazarov Apr 14, 2026
39ced0c
docs(26): revise plan 02 for review feedback — maxWait bounds HTTP, f…
tazarov Apr 14, 2026
ea6b584
docs(26): revise plan 03 for review feedback — use ConfigInt + reject…
tazarov Apr 14, 2026
7e5eb64
docs(26): revise plan 04 for review feedback — Part type + high-risk …
tazarov Apr 14, 2026
818c569
feat(26-01): add async request/response types and polling fields
tazarov Apr 14, 2026
0566ec2
feat(26-01): add doTaskPost and doTaskGet HTTP helpers
tazarov Apr 14, 2026
9da25cb
docs(26-01): complete async foundation plan
tazarov Apr 14, 2026
4f24085
feat(26-03): add WithAsyncPolling option
tazarov Apr 14, 2026
83e2e8e
feat(26-03): round-trip async keys through GetConfig and FromConfig
tazarov Apr 14, 2026
ef31d06
feat(26-02): add pollTask, contentToAsyncRequest, and createTaskAndPoll
tazarov Apr 14, 2026
f94359f
docs(26-03): complete async option + config round-trip plan
tazarov Apr 14, 2026
d6e0222
feat(26-02): route audio/video through async path when asyncPollingEn…
tazarov Apr 14, 2026
608d007
docs(26-02): complete async polling loop and modality routing plan
tazarov Apr 14, 2026
cd59768
chore: merge executor worktree (26-02)
tazarov Apr 14, 2026
b323908
test(26-04): add async task-create, poll-ready, poll-failed, unexpect…
tazarov Apr 14, 2026
5e2b9ce
test(26-04): add ctx-cancel, maxWait, skip-text-image, config round-t…
tazarov Apr 14, 2026
454ad3d
docs(26-04): complete async test coverage plan
tazarov Apr 14, 2026
ee78e21
docs(26): add code review report
tazarov Apr 14, 2026
ef336c2
docs(phase-26): complete phase execution
tazarov Apr 14, 2026
598f823
fix(26): WR-01 bound async task create call by maxWait
tazarov Apr 14, 2026
7322514
test(26): WR-02 add doTaskPost non-2xx error regression tests
tazarov Apr 14, 2026
e642f51
docs(26): add code review fix report
tazarov Apr 14, 2026
5461aa8
test(26): complete UAT - 8 passed, 0 issues
tazarov Apr 14, 2026
db4aa08
docs(phase-26): add security threat verification (17 closed, 0 open)
tazarov Apr 14, 2026
c099582
docs(phase-26): validate nyquist coverage (0 gaps, 8/8 green)
tazarov Apr 14, 2026
efe6ecf
docs(26): add code review report
tazarov Apr 14, 2026
abf8b62
fix(26): preserve async transport timeout errors
tazarov Apr 14, 2026
1c9b9f5
docs(26): add code review fix report
tazarov Apr 14, 2026
27f800c
fix: harden Twelve Labs async embedding flow
tazarov Apr 14, 2026
a4e28d7
docs(26): ship phase 26 - PR #509
tazarov Apr 14, 2026
98a8c19
fix(26): enforce asyncMaxWait hard bound and trim per-poll allocations
tazarov Apr 14, 2026
62680ad
fix(ci,26): wire GITHUB_TOKEN into crosslang + preserve canceled-path…
tazarov Apr 14, 2026
c434308
fix(26): harden async create-response handling and URL scheme validation
tazarov Apr 14, 2026
e5f461c
fix(26): address PR #509 review feedback
tazarov Apr 14, 2026
0549e3f
fix(26): fail fast on invalid async option combos + preserve create-t…
tazarov Apr 14, 2026
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
3 changes: 3 additions & 0 deletions .github/workflows/go.yml
Original file line number Diff line number Diff line change
Expand Up @@ -497,8 +497,11 @@ jobs:
CHROMA_API_KEY: ${{ secrets.CHROMA_API_KEY }}
CHROMA_TENANT: ${{ secrets.CHROMA_TENANT }}
CHROMA_DATABASE: ${{ secrets.CHROMA_DATABASE }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Test local runtime cross-persistence
run: make test-crosslang-local
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Upload Test Results
if: always()
uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0
Expand Down
16 changes: 8 additions & 8 deletions .planning/REQUIREMENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,10 +25,10 @@

### Provider Enhancement

- [ ] **TLA-01**: Twelve Labs provider detects async task responses from the sync endpoint and enters a polling loop
- [ ] **TLA-02**: Async polling respects caller context for cancellation and timeout
- [ ] **TLA-03**: Async polling handles terminal states (ready, failed) with appropriate error messages
- [ ] **TLA-04**: Tests cover async task creation, polling, completion, failure, and context cancellation
- [x] **TLA-01**: Twelve Labs provider detects async task responses from the sync endpoint and enters a polling loop
- [x] **TLA-02**: Async polling respects caller context for cancellation and timeout
- [x] **TLA-03**: Async polling handles terminal states (ready, failed) with appropriate error messages
- [x] **TLA-04**: Tests cover async task creation, polling, completion, failure, and context cancellation

### Internal Cleanup

Expand Down Expand Up @@ -69,10 +69,10 @@
| EFL-03 | Phase 24 | Pending |
| ERR-01 | Phase 25 | Complete |
| ERR-02 | Phase 25 | Complete |
| TLA-01 | Phase 26 | Pending |
| TLA-02 | Phase 26 | Pending |
| TLA-03 | Phase 26 | Pending |
| TLA-04 | Phase 26 | Pending |
| TLA-01 | Phase 26 | Complete |
| TLA-02 | Phase 26 | Complete |
| TLA-03 | Phase 26 | Complete |
| TLA-04 | Phase 26 | Complete |
| DL-01 | Phase 27 | Pending |
| DL-02 | Phase 27 | Pending |
| MORPH-01 | Phase 28 | Pending |
Expand Down
11 changes: 7 additions & 4 deletions .planning/ROADMAP.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ See: [v0.4.1 Archived Roadmap](milestones/v0.4.1-ROADMAP.md)
- [x] **Phase 23: ORT EF Leak Fix** - Default ORT EF is properly closed when CreateCollection finds an existing collection (completed 2026-04-11)
- [x] **Phase 24: GetOrCreateCollection EF Safety** - GetOrCreateCollection does not pass closed EFs to CreateCollection fallback (completed 2026-04-12)
- [x] **Phase 25: Error Body Truncation** - Embedding provider error messages truncate raw HTTP bodies to safe display lengths (completed 2026-04-13)
- [ ] **Phase 26: Twelve Labs Async Embedding** - Twelve Labs provider handles async task responses for long-running media
- [x] **Phase 26: Twelve Labs Async Embedding** - Twelve Labs provider handles async task responses for long-running media (completed 2026-04-14)
- [ ] **Phase 27: Download Stack Consolidation** - default_ef download code uses shared downloadutil instead of its own HTTP implementation
- [ ] **Phase 28: Morph Test Fix** - Morph EF integration test handles upstream 404 gracefully
- [ ] **Phase 29: Rank Expression Composition Robustness** - Reject silent footguns in rank composition (nil operands, degenerate RRF compositions)
Expand Down Expand Up @@ -126,10 +126,13 @@ Plans:
2. Polling respects the caller's context.Context for cancellation and timeout
3. Terminal states (ready, failed) are handled with appropriate result delivery or error messages
4. Tests cover async task creation, polling to completion, polling to failure, and context cancellation
**Plans**: TBD
**Plans**: 4 plans

Plans:
- [ ] 26-01: TBD
- [x] 26-01-PLAN.md — Async HTTP foundation: request/response types, polling fields, doTaskPost/doTaskGet helpers
- [x] 26-02-PLAN.md — Polling loop, modality routing, and async orchestrator (pollTask + content.go branch)
- [x] 26-03-PLAN.md — WithAsyncPolling option and GetConfig/FromConfig async round-trip
- [x] 26-04-PLAN.md — Seven async tests (create, poll-ready, poll-failed, unexpected-status, ctx-cancel, maxWait, config round-trip)

### Phase 27: Download Stack Consolidation
**Goal**: default_ef download code uses the shared downloadutil package instead of its own HTTP download implementation
Expand Down Expand Up @@ -200,7 +203,7 @@ Phase 24 depends on Phase 23. Phase 26 depends on Phase 25. Phase 29 depends on
| 23. ORT EF Leak Fix | v0.4.2 | 1/1 | Complete | 2026-04-11 |
| 24. GetOrCreateCollection EF Safety | v0.4.2 | 1/1 | Complete | 2026-04-12 |
| 25. Error Body Truncation | v0.4.2 | 4/4 | Complete | 2026-04-13 |
| 26. Twelve Labs Async Embedding | v0.4.2 | 0/0 | Not started | - |
| 26. Twelve Labs Async Embedding | v0.4.2 | 4/4 | Complete | 2026-04-14 |
| 27. Download Stack Consolidation | v0.4.2 | 0/0 | Not started | - |
| 28. Morph Test Fix | v0.4.2 | 0/0 | Not started | - |
| 29. Rank Expression Composition Robustness | v0.4.2 | 0/3 | Not started | - |
Expand Down
26 changes: 13 additions & 13 deletions .planning/STATE.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,15 @@
gsd_state_version: 1.0
milestone: v0.4.2
milestone_name: Bug Fixes and Robustness
status: ready
stopped_at: Phase 25 shipped — PR #506
last_updated: "2026-04-13T18:25:33.287Z"
last_activity: "2026-04-13 -- Phase 25 shipped — PR #506"
status: executing
stopped_at: Phase 26 shipped — PR #509
last_updated: "2026-04-14T12:47:58.488Z"
last_activity: 2026-04-14
progress:
total_phases: 11
completed_phases: 6
total_plans: 10
completed_plans: 10
completed_phases: 7
total_plans: 14
completed_plans: 14
percent: 100
---

Expand All @@ -21,22 +21,22 @@ progress:
See: .planning/PROJECT.md (updated 2026-04-10)

**Core value:** Go applications can use Chroma and embedding providers through a stable, portable API that minimizes provider-specific friction.
**Current focus:** Phase 30v2-searchrequestoption-nil-consistency
**Current focus:** Phase 26twelve-labs-async-embedding

## Current Position

Phase: 30
Plan: Not started
Status: Phase 25 shipped — PR #506
Last activity: 2026-04-13 -- Phase 25 shipped — PR #506
Status: Phase 26 shipped — PR #509
Last activity: 2026-04-14

Progress: [██████████] 100%

## Performance Metrics

**Velocity:**

- Total plans completed: 10
- Total plans completed: 14
- Average duration: 23 min
- Total execution time: 23 min

Expand Down Expand Up @@ -70,5 +70,5 @@ Decisions are logged in PROJECT.md Key Decisions table.

## Session

**Last Date:** 2026-04-13T08:13:19.127Z
**Stopped At:** Phase 25 shipped — PR #506
**Last Date:** 2026-04-14T06:03:58.196Z
**Stopped At:** Phase 26 shipped — PR #509
Loading
Loading