tractor/.taken/current.org

27 KiB

tractor project store

tractor

TODO funding round 2

  • pursue funding only where tractor has a concrete, non-overlapping work package
  • keep ordinary project progress separate from grant theatre
  • decide the disposition of the older `tractor/ngi0` and `piker/proj_mgmt` submission trackers without changing their states implicitly

TODO prepare Restack submission

  • preserve the complete rejection email and extract any direct reviewer feedback
  • monitor the official Restack call and revalidate the final guide, eligibility rules, deadline, budget limits, and GenAI policy
  • secure a named EU or Horizon-associated participant with a real testing, packaging, integration, or deployment role
  • retain the narrow beta-hardening scope:

    • lifecycle and cancellation conformance
    • scoped supervision, backpressure, and observability
    • authenticated multi-host operation
    • reproducible beta release and downstream demonstrators
  • keep completed docs, typed messaging, and multiaddr work outside the requested budget
  • define acceptance artifacts, hours, rates, risks, and exclusions for every milestone
  • have one distributed-systems reviewer and one outside FOSS maintainer review the human-authored application
  • submit at least 24 hours before the announced deadline and archive the exact application, attachments, and receipt

TODO establish grant-ready public evidence

  • publish a current honest Alpha release with rebuilt changelog, clean-install evidence, artifacts, checksums, and support matrix
  • publish a dated baseline covering test counts, skips, platforms, transports, spawn backends, startup, cancellation, and streaming
  • document two concrete downstream cases:

    • `piker` workload and historical failures captured by tests
    • European partner workload and acceptance condition
  • add concise contribution, security, governance, release, and support policies
  • identify at least one reviewer or backup maintainer for an important release, CI, or documentation process
  • maintain a factual evidence sheet and lightweight proposal attachment rather than attaching internal planning dossiers

TODO restore forge continuity

  • keep GitHub as the canonical writable collaboration venue for this application cycle
  • make `pikers.dev` the project-controlled landing domain and eventual canonical Forgejo home
  • synchronize the stale `pikers.dev` and SourceHut mirrors, including public branches and tags
  • automate mirror-freshness checks against canonical `main` and release tags
  • label mirrors read-only and direct issues and patches to one canonical venue
  • export forge metadata and maintain a verified Git bundle outside GitHub and the `pikers.dev` host
  • keep SourceHut as a durable Git/email/build mirror only where its workflow is actually maintained
  • keep build, test, and docs commands repository-owned and forge-neutral
  • use a project-controlled docs URL when a suitable domain is available without delaying submission

TODO pursue immediate funding leads

  • GitHub Secure Open Source Fund:

    • publish minimum security and governance prerequisites
    • apply for the USD 10k security program after confirming the next active cohort
  • FUTO:

    • send a short inquiry for independent, self-hosted distributed infrastructure work
  • FLOSS/fund:

    • publish `funding.json`
    • request USD 10k for release, security, and sustainability work
  • Sovereign Tech Resilience:

    • request a bounded audit, technical-debt, documentation, or direct-engineering engagement
  • And Other Stuff:

    • approach only with a concrete freedom-tech downstream or collaboration request, not as a grant application

TODO prepare long-term funding infrastructure

  • create a reusable two-page funding brief with project evidence, risks, rates, and non-overlapping work packages at multiple scales
  • track every active proposal's requested work to prevent duplicate public funding
  • choose a fiscal host only when there is money, a grant, or a contract to administer
  • compare fiscal-host paths when needed:

    • Open Source Collective for immediate payment and contract administration
    • SPI for a lower-fee charitable home after stronger adoption
    • Software Freedom Conservancy for long-term copyleft and legal stewardship after broader community growth
    • Open Source Europe when European grants and banking dominate
  • distinguish personal recurring maintainer support from project funds and contracted deliverables

TODO cultivate later funding routes

  • build prevalence and sector evidence for a greater-than-EUR-50k Sovereign Tech Fund application
  • monitor future Sovereign Tech Fellowship and OTF FOSS Sustainability rounds
  • pursue OTF Internet Freedom Fund only with named censorship-resistance or secure-communications users
  • investigate NSF PESOSE only through a legitimate eligible US research partner, targeting March 2027 or later
  • investigate Prototype Fund only with genuine German/EU team eligibility
  • revisit Sloan, CZI, NumFOCUS, and Internet Society only when organizational and domain-specific eligibility becomes real

TODO AI-sprint-PRS

TODO to_actor.open_taskman

  • decide whether this design-only commit should land independently or remain draft until implementation PR A
  • land #481 and #484 first, then retarget this one-commit PR to `main`
  • remove draft status only after the design is accepted
  • obtain human review; this PR currently has no review activity
  • remove or correct the closing relationship to #485; this documentation PR does not implement the issue
  • revalidate the `hilevel_serman` and draft #363 prior-art references, including removed `Portal.wait_for_result()` usage
  • review `ai/conc-anal/to_actor_taskman_design.md`
  • keep implementation follow-ups in canonical #485:

    • PR A: `ActorTaskMngr`, `open_taskman()`, supervision strategies, exit policy, cancellation, tests, and docs
    • PR B: `open_worker_pool()`, #172 absorption, cluster modernization, and example/test migrations
    • PR C: optional downstream `piker` service-manager adoption
  • keep restart strategies outside PR A
  • ensure future implementation updates `docs/guide/spawning.rst`, `docs/guide/rpc.rst`, and `docs/api/core.rst`

WIP ng-tpts-plans

  • rebase to latest main & push

WIP wkt/addr_unpacking

  • pushed implementation evidence at `5d92595f`:

    • `dd02c7c0` added `TunnelledAddress` wrapper primitives
    • `3f675323` added nested WireGuard multiaddrs
    • `f81fc5e5` moved examples onto discovery's WireGuard parser
    • `d0a9593a` peeled tunnels before `Channel` connects
    • `dfad66a0` peeled tunnels before `Endpoint` binding
    • `ba07e09d` modeled bindspaces as scoped capabilities
    • `284a9679` added tagged transport-address readers
    • `5d92595f` switched address writers to canonical tagged forms
  • verification evidence:

    • reader boundary passed Ruff and 53 focused tests
    • final TCP boundary passed 412 non-debugger tests
    • UDS reached 80 percent before the harness timeout and all 97 remaining tests passed on resume
    • `github/wkt/addr_unpacking` and `dev/wkt/addr_unpacking` both resolve to `5d92595f`
  • complete landing qualification

    • run one uninterrupted non-debugger UDS full-suite pass
    • rerun `tests/devx` and disposition the debugger PTY timeout
    • create or identify the review PR for `wkt/addr_unpacking`
    • obtain human review and land the branch
TODO qualify downstream `piker` tagged-address compatibility
  • normalize address equality and set operations in `piker/service/_registry.py`
  • audit `piker/service/_actor_runtime.py` bootstrap and config boundaries for mixed legacy inputs and tagged runtime outputs
  • run representative `piker` service startup, discovery, registry, and reconnect coverage against `tractor@5d92595f`

WIP implement runtime-managed WireGuard bindspaces

  • implement layer B WireGuard read and verification through `pyroute2` under Trio

    • start with the synchronous API under `trio.to_thread.run_sync()`
    • evaluate a small sans-I/O netlink read path without adding `trio-asyncio`
  • implement layer C scoped bindspace capabilities

    • add serializable `BindspaceSpec` and stable `BindspaceIdentity`
    • add owned or borrowed `BindspaceHandle` lifecycle
    • enter namespaces during child bootstrap before runtime, channels, listeners, sockets, or worker threads
    • drop provisioning authority before actor application code
    • implement role-aware listen/dial setup and idempotent teardown
  • add capability-gated integration coverage

    • assert nested context enter/exit ordering with fakes
    • create two netns plus a WireGuard pair under `CAP_NET_ADMIN`
    • verify namespace inode before parent connect and listener setup
    • cover FD-pinned identity, privilege drop, and owned versus borrowed teardown
  • retain canonical follow-up scopes

WIP the TIPC backend

  • manually qualify two physical Linux hosts with the committed `examples/multihost/tipc_cluster/README.md` runbook

    • record kernel, node, bearer, link and name-table state from both motherboards
    • exercise host-A publication and host-B RPC by service name
    • exercise bearer withdrawal, name withdrawal, rejoin and republication without risking the management connection
  • preserve both Python transcripts and TIPC diagnostics as landing evidence
  • obtain human reviews and land only after PR #503 and PR #492 have reached the dependency state intended by PR #493

    • get at least ONE other human-collab review!
  • keep broader physical-overlay work in canonical trackers

    • issue #124 for reusable multi-host harness coverage
    • issue #502 for the TIPC-over-WireGuard reference deployment
TODO upstream the `/tipc` multiaddr codec and specification
  • review the concise `py-multiaddr` candidate at `github/multiformats/py-multiaddr/issues/DRAFT_tipc.md`
  • open the implementation-first `py-multiaddr` issue and ask for maintainer guidance on text shape, binary width, scope, ranges and registration order
  • prepare a draft Python codec PR only after the issue direction is accepted

    • implement deterministic fixed-width and text codec vectors
    • cover malformed, non-canonical and boundary values
    • prove standalone `/tipc` string/binary round trips
    • prove composed `/wg/…/tipc/…` round trips
  • incorporate maintainer review before freezing the specification

    • file code/test polish separately, following py-multiaddr #130
    • file the registration plan separately, following py-multiaddr #123
  • register the protocol only after implementation semantics settle

    • reserve the `multiaddr`-tagged code in `multiformats/multicodec`
    • submit the protocol row and normative encoding to `multiformats/multiaddr`
    • add cross-implementation follow-ups only after registration
  • circle the accepted upstream shape back into tractor

    • update issue #498 and plan 04 with canonical decisions
    • replace the interim slash grammar and remove the parser special case
    • add the released `py-multiaddr` version floor when available
TODO add TIPC management to the planned Python netlink stack
  • draft a focused `pyroute2` TIPC generic-netlink support issue

    • link the kernel `TIPCv2` UAPI and iproute2 implementation
    • confirm no current `pyroute2` TIPC codec duplicates the work
    • link tractor issues #482, #498 and #502
  • prototype only the management surfaces required by the deployment

    • network identity and node inspection
    • Ethernet/UDP bearer add, list and remove
    • link, name-table and statistics reads
    • reuse the WireGuard/netns dependency without adding an asyncio loop to tractor actors

WIP mtf_backend

TODO GH summer cleaning

TODO multiOS_support

TODO Carry multi-OS follow-up after PR #475

  • Carry remaining Windows-suite work through issue #476.

    • Correct the stale Windows-CI statement in ``docs/start/install.rst`` or explicitly track its correction in #476.
    • Finish the tracked suite-cleanup packages and promote the Windows ``pytest`` step to a hard CI gate.
  • Preserve the remaining multi-OS issue scopes.

    • Keep issue #404 open for broader multi-platform support.
    • Keep issue #405 open for native Windows UDS support.

TODO anyio feats stealin

WIP subinterpreters

WIP vibe a first patch from the issue,

TODO followups & blockers

  • wait on `msgspec` full subints support

    • <link to msgspec issue>
  • various (x)failures in pytest suite
  • variuos follow up (investigative) issues

    • <put#here>

TODO AI-SKILLZ

TODO miscelaneous?

TODO mk ai.skillz/ adjust to `.agents/`

TODO type_checkin_n_lintin

TODO get `ty` running clean in CI

  • also obvi as part of local claude workflows

    • /type-check which should use local `ty`
    • /lint already started in piker and with `ruff`

TODO get `ruff` in CI (with "our prefs")

  • namely the stuff the ai's seem to have no trouble replicating?

Restack: September submission detail

TODO funding round 2

Local detail for the November Restack submission. The older broad funding checklist remains in the personal Taken corpus. Reconcile ownership during federation rather than importing this twice.

TODO resolve Canadian eligibility and learn from mgmt
  • ask NLnet how Canadian citizenship versus current residence, and Canada's partial Horizon association, affect Restack eligibility
  • clarify what residence evidence and European dimension are needed; do not assume citizenship or tax residency settles the question
  • sync with James on mgmt's eligibility route, proposal scope, review changes, milestone payments, and AI provenance requirements
  • refine the Matrix opener and selected follow-up questions in plans/opencode/restack-collaborator-outreach.md
TODO recover prior application and professional evidence
  • supply the original application receipt and rejection email; separate actual feedback from the July plan's inferred diagnosis
  • supply CV/profile links and a dated concurrency/queueing career chronology with attributable outcomes and public references
  • refine the first-pass professional audit and publish a concise maintainer evidence page with a reliable contact link
  • use plans/opencode/restack-evidence-refresh-2026-09-30.md as the sourced research baseline
TODO recruit robotics validation collaborators
  • identify both collaborators' projects, locations, actual adoption stage, and permission for public attribution
  • refine and send the robotics outreach draft in plans/opencode/restack-collaborator-outreach.md
  • agree a small publishable workload or simulator, a concrete validation role, acceptance conditions, and realistic availability
  • clarify licensing blockers and any integration work needing a budgeted role; obtain confirmation of the proposed collaboration
TODO freeze Restack baseline and bounded scope
  • record source commit, release/support status, downstream evidence, and reproducible lifecycle/failure tests
  • distinguish landed work, review-stage prototypes, proposed standards contributions, and the future AOT runtime direction
  • choose bounded supervision-conformance, deployment, upstream, and downstream-release outcomes from the October plan
  • define semantic contracts and transport-loss limits beyond schema compatibility; avoid claiming already-proven cross-language guarantees
  • link canonical transport work rather than duplicate its checklists

TODO build milestones budget and human-authored application
  • by 18 October, define acceptance artifacts, hours, rates, owners, dependencies, fallback outcomes, and an exact EUR request
  • account for payment after delivery and non-overlap with other funding; exclude already completed work from the requested budget
  • by 23 October, write concise form answers in the applicant's own words, supported by experience, user evidence, and comparisons
  • follow plans/opencode/restack-october-submission-plan.md and prepare the assistance disclosure required at submission
TODO monitor policy review and submit first Restack round

DEADLINE: <2026-11-03 Tue 12:00>

  • check the call, form, and GenAI policy weekly, after announcements, and immediately before submission; monitoring is not automated yet
  • by 30 October, obtain technical, outsider-clarity, partner-role, and budget reviews; resolve remaining eligibility questions
  • aim to submit on 2 November, ahead of the official deadline of 3 November 2026 at 12:00 CET; convert correctly to local time
  • archive exact answers, disclosure files, attachments, and receipt; prepare for reviewer questions and update milestones if work lands