code-yeongyu / code-yeongyu/senpi

feat(eval): typed task handles and sugar-only eval workpools (S2)

Closed
#1,646 4 comments 0 reactions 0 assignees View on GitHub
Dominant language
TypeScript
Stars
429
Forks
98
Avg merge
5h 3m
Merged PRs (30d)
526

Description

## Summary
Consume typed task handles and expose sugar-only eval workpools in senpi.

## Expected
Successful task handles carry structural `details.task_id` and nonnegative `details.run_epoch`; malformed or missing details return typed `invalid_task_handle` without parsing prose. `workpool(agent, name, options?)` is a thin adapter over the host `tool.workpool` contract across JS, Python, Ruby, and Julia, with no scheduler or queue state in preludes. HC13 applies: kernel tools are not enabled for unsupported parent languages or process/RPC/team children.

## Scope + acceptance criteria
- Validate typed handle details at the untrusted bridge boundary and remove final-handle prose regex fallback while preserving existing presentation and foreground behavior.
- Add parity sugar adapters for `push`, `close`, `inspect`, and `cancel`, forwarding opaque pool IDs and unchanged schemas.
- Return typed `workpool_unavailable` and handle errors for missing or incompatible hosts; preserve reset/recreate-by-ID behavior.
- Verify direct host calls and sugar produce identical machine results and no prelude scheduling state.

## Related
- Sibling units: [senpi#1637](https://github.com/code-yeongyu/senpi/issues/1637) (merged S8), [senpi#1639](https://github.com/code-yeongyu/senpi/issues/1639) (S1), [oh-my-openagent#8211](https://github.com/code-yeongyu/oh-my-openagent/issues/8211) (O9), [oh-my-openagent#8213](https://github.com/code-yeongyu/oh-my-openagent/issues/8213) (O2).
- Copy-on-write isolation [oh-my-openagent#8181](https://github.com/code-yeongyu/oh-my-openagent/issues/8181) is explicitly out of scope.

Contributor guide

Open the contributing guide

Research direction

Start at the untrusted bridge boundary and the host tool.workpool contract, then compare the JS, Python, Ruby, and Julia prelude adapters. Check direct host calls against the sugar operations for identical machine results, typed unavailable and handle errors, and no scheduler or queue state in preludes.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript, julia, python, ruby, typescript
Domain
backend-api-design, tooling
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.