Repository navigation
Releases: hpoenixf/open-etf-agent
Release list
v0.15.0 — One serial source-checking specialist Child
Implementation: 74bd5aa455ccaeb2994eb22aa744affde660bfa2 (phase/v0.15).
Main delegates to one source-checking Child with an independent context, then consumes its original page/result references and explicitly derived advice before saving a report. This is one serial specialist—not parallel experts, a new executor or a policy authority.
Run and inspect
node src/specialist-cli.mjs run --session runs/specialist-demo
node src/specialist-cli.mjs read --session runs/specialist-demo --run RUN_IDStart in a new owned directory and replace RUN_ID with the actual output. The public CLI is an offline synthetic fixture and accepts no model-key option. Bounded resume covers settled handoffs; unknown dispatched requests are not automatically retried, and active Runs from the older WIP template have no cross-template compatibility promise.
Verification and limits
- Implementation CI passed. Original 445/450 CI remains recorded; test-only fixture diagnosis explains controlled lease clocks and the host-stop test's incorrect user-cancel watchdog. Production code was unchanged by that repair.
- Three real-mechanism batches: two failed, one passed. Ten physical attempts include nine responses explicitly reporting zero Go balance charge and one with unknown usage/cost—not presumed free or refunded.
- Original readback and bounded synthetic-source comparison passed. This does not certify general model quality, financial semantics, production readiness or live crash recovery. Final frozen-source evidence records the original execution; the subsequent test-only repair is recorded separately above.
- Article and article-coverage updates are separate and are not claimed complete by this release. Earlier versions, receipts and author information are retained.
v0.14.0 — Read-only existing Memory
Read an existing Memory library without writing it
The new memory-recall CLI consumer opens an explicitly selected, existing Memory library read-only. It exposes search/read/list without initializing the library or acquiring a writer lock. This extends the existing Memory mechanisms; it is not the first implementation of Memory search. Current encoded revision IDs and hashes reach a visible report section and CLI receipt.
Try it
Install and build using the fixed README. Select an existing library created through the authorized Memory owner:
node src/cli.mjs --case memory-recall --memory-library /absolute/path/to/existing-library --query "physical" --output runs
node src/cli.mjs --case memory-recall --memory-library /absolute/path/to/existing-library --query "physical" --temporary --output runsDo not point the historical explicit-memory write/revise/forget demonstration at a nonempty library; it remains a separate empty-library fixture.
Boundaries and evidence
--temporary takes precedence before importing, opening, scanning or reading the selected Memory owner; the independent synthetic document task can still complete. Enabled missing, corrupt or symlinked libraries fail closed without creation or repair.
Memory is untrusted preference context, not source evidence or authority. Existing currentness projection filters superseded/forgotten typed entries, but cannot retract already sent bytes or make dispatch atomic with file-library mutation. This fixture uses a fixed synthetic transport through the existing Gateway encoder: no network/model call or live-model quality claim. No new schema, learning/vector service or cross-version active-Run recovery. Article alignment remains independent.
v0.13.0 — One durable ordinary reply
One durable ordinary reply
The durable-response fixture commits one ordinary question in Session and yields its execution lease. Receiving a reply records receipt only; explicitly resuming the original Run adopts that reply as the original tool result. The next fixture Gateway input and original report contain the reply.
Try it
Follow the fixed README, then run:
npm run session -- start --session runs/reply --case durable-response
# Use the returned RUN_ID and QUESTION_ID, not a new Run.
npm run session -- respond --session runs/reply --run RUN_ID --question QUESTION_ID --response reply-1 --text 'Synthetic label: blue'
npm run session -- resume --session runs/reply --run RUN_ID
npm run session -- response-status --session runs/reply --run RUN_IDBoundaries and evidence
One question and one accepted reply per Run. The original 300-second deadline and root budgets continue while waiting; receipt does not reset them, automatically wake execution, grant permission or imply Memory intent. This is not HumanPark or real-model understanding qualification. Local Session write access is the trust boundary. Ordinary-response Sessions explicitly use schema v3; defaults remain v2, without migration of active old Runs. Receipt, adoption and actual report effect remain separate facts.
v0.12.0 — Fixed task-time interpretation
Fixed task-time interpretation
An explicit IANA time zone and UTC anchor establish one task-local date. Session preserves it in the original Run definition; Runtime and Gateway reuse that interpretation after restart instead of changing the original question's “today.”
Try it
Follow the fixed README using Node 26.8.1–26.x (qualification used 26.11.1), then run:
npm run temporal -- submit --session runs/time-example --run fixed \
--time-zone America/Los_Angeles --anchor 2026-10-28T00:30:00.000Z
npm run temporal -- work --session runs/time-example --run fixed
npm run temporal -- read --session runs/time-example --run fixedExecute within the original 300-second deadline. The completed report remains readable afterward; the frozen task date does not extend the deadline.
Boundaries and evidence
Calendar dates, not trading days. No market calendar, natural-language date parser, scheduler or current-data guarantee. The demonstration uses synthetic inputs and a scripted Gateway, not live-model or investment-quality qualification. Article synchronization is independent of code delivery.
Fixed source · Qualification and independent original-report readback · Fixed-commit CI
v0.11.0 — Local text-layer PDF
Local text-layer PDF
Read an explicitly selected physical page from a local text-layer PDF, then deliver a report and the original PDF through the existing Source, Result and Artifact path. Includes the bounded Session recovery-admission repair needed by the existing durable execution chain.
Try it
Use Node 26.8.1–26.x (qualification used 26.11.1), install locked dependencies, and build as described in the fixed README. Run:
npm run demo -- --case local-pdf --output runs/pdf-exampleThe default uses a synthetic PDF. Select a local file with --pdf /absolute/path/document.pdf and a physical page with --pdf-page 3; use a fresh output directory.
Boundaries and evidence
Text-layer extraction only: no OCR, page images, layout/table reconstruction, remote-file acquisition or recovery of an active parse. This is a bounded teaching implementation, not production or investment-quality certification.
Fixed source · PDF and byte-readback evidence · Recovery qualification · Fixed-commit CI
v0.10.0 — One result, actual consumers
Retrospective version snapshot recorded on 2026-10-28. This publication date is not the original implementation or test date. The tag preserves phase/v0.10 at ff5b9273ef0d239e804f61792702cd2e94174be7; it does not rerun or renew historical qualification.
Source-bound Result/Reference calculation reaches the next Gateway request, report and CSV with independent readback. Numbering qualification checks the already-delivered calculation module under 0.10.0; later article/coverage promotion records remain separate. This is not arbitrary Python execution or a model-quality claim.
Evidence: fixed qualification record.
This is a bounded development snapshot, not production-readiness certification. No new model calls, database tests or semantic evaluation were performed for this retrospective publication.
v0.9.0 — Continue the same Run
Retrospective version snapshot recorded on 2026-10-28. This publication date is not the original implementation or test date. The tag preserves phase/v0.9 at dad9c6e64f32c3d7579aea96613776b40917ec6d; it does not rerun or renew historical qualification.
A single-Run Worker separates submit and work processes while retaining original execution identity, limits and terminal readback. The combined execution record and delivery-equivalence evidence apply to this phase. Later test/CI/document maintenance is not folded into the tag. No queue or Scheduler is added.
Evidence: fixed qualification record.
This is a bounded development snapshot, not production-readiness certification. No new model calls, database tests or semantic evaluation were performed for this retrospective publication.
v0.8.0 — Independent answer-body commit
Retrospective version snapshot recorded on 2026-10-28. This publication date is not the original implementation or test date. The tag preserves phase/v0.8 at 2c096ce47be2161f97531170af07ef255872f8b1; it does not rerun or renew historical qualification.
Single-block Publication preserves body identity, revision CAS and original receipts independently of later Run outcomes. This qualified executable phase precedes main promotion documentation/coverage receipts that did not change runtime code. Publication remains a bounded single-block implementation.
Evidence: fixed qualification record.
This is a bounded development snapshot, not production-readiness certification. No new model calls, database tests or semantic evaluation were performed for this retrospective publication.
v0.7.0-dev.0 — Trusted contributions and durable recovery
Retrospective version snapshot recorded on 2026-10-28. This publication date is not the original implementation or test date. The tag preserves phase/v0.7 at 5f70dc0b4760ad70ef211f4823828ab2fee5c525; it does not rerun or renew historical qualification.
Trusted Plugins, SQLite, lease/fence and sealed checkpoints support bounded same-Run recovery. Recorded real-process interruption/recovery and independent delivery use synthetic inputs. Trusted plugins are not a sandbox; this does not establish production or live-model recovery.
Evidence: fixed qualification record.
The package remains 0.7.0-dev.0; this entry is marked pre-release to preserve its development-snapshot status. No new model calls, database tests or semantic evaluation were performed for this retrospective publication.
v0.6.0-dev.0 — Delivery by identity
Retrospective version snapshot recorded on 2026-10-28. This publication date is not the original implementation or test date. The tag preserves phase/v0.6 at 7480b656b18192e6d6b44aab65255b970d58e6f8; it does not rerun or renew historical qualification.
Artifact and Revision identities connect CSV attachments, a loopback Reader and exact HTTP/file readback. This original qualified phase excludes later 1191842 filesystem-error maintenance. The loopback Reader is not a production service, and file reopening is not same-Run recovery.
Evidence: fixed qualification record.
The package remains 0.6.0-dev.0; this entry is marked pre-release to preserve its development-snapshot status. No new model calls, database tests or semantic evaluation were performed for this retrospective publication.