Releases: flowjzh/teamai-cli
Release list
v0.24.0-er.5
- an interactive teamai pull no longer blocks on the deploy: the
postPull script launches fire-and-forget into the user's terminal
(streaming, visible), while the hook path still waits it out under
the same budget with the same debug.log lines. The launch shape is
picked where the caller is known (GlobalOptions.interactive). - detachChild/detachPipe move child-detach into utils/exec.ts, shared
by the postPull timeout path and local-agent's daemonized workers. - trySpawnDetachedViaWmi loses its dead label option (the postPull
supervisor that used it is gone).
v0.24.0-er.4
- post-pull scripts now run inside the pull process: the detached
supervisor and its second WMI escape are gone. The script inherits
the pull's hidden console and is awaited under a single budget
(90s) that only bounds how long the pull waits - on expiry the
script is left running instead of being killed mid-deploy. - scripts.postPull.timeoutSec leaves the teamai.yaml schema; the
budget is a CLI constant, still exported to the script as
TEAMAI_POSTPULL_TIMEOUT_SEC. - debug.log contract unchanged: postPull: launched / exited N in ,
timeout now reads 'timed out ... - orphaned'.
v0.24.0-er.3
Job-object escape for the detached hook child on Windows, plus teamai.yaml scripts.postPull.
- the detached background hook child is created through the WMI service (hidden console at creation), so it survives the host killing the hook's job object; the hook payload travels as a temp file, PowerShell is resolved by absolute path, provider refusals are detected by exit code and retried with the cmdlet spelling
- teamai.yaml may declare scripts.postPull: { path, timeoutSec } — a Node entrypoint the CLI runs after a successful pull, through a detached supervisor that owns a hidden console (so the whole deploy subtree inherits it), enforces the deadline, tree-kills on overrun, and reports launched/exited/timed out in debug.log
- verified on a Windows host: the background child is parented to WmiPrvSE.exe (outside the job), the session-start pull completes, postPull runs end to end, and no console window appears
v0.24.0-er.2
Diagnoses and works around the er.1 field failure: in WorkBuddy's hook environment the WMI call came back refused (powershell exited 1), and er.1 logged nothing about why.
- the log line now carries the provider's ReturnValue, or the script's own error text
- a refusal ends there; the second spelling of the same call (Invoke-CimMethod, with ShowWindow as uint16) runs only when the script never reached the provider — the shape of a host whose PowerShell policy rejects the type accelerator
- PowerShell is still resolved by absolute path
Verified on Windows: both spellings create the process outside the job (parent WmiPrvSE.exe), with the console hidden.
v0.24.0-er.1
Fixes v0.24.0-er.0: resolve Windows PowerShell by absolute path, and log when the WMI escape is refused. A hook inherits its host's PATH, and WorkBuddy's leaves a bare powershell.exe unresolvable — the escape then fell back to an in-job spawn and died with the hook, silently. Same two commits otherwise (job-object escape + teamai.yaml scripts.postPull).
v0.24.0-er.0
Internal patch line on top of upstream v0.24.0 (teamai-cli fork).
- fix(hooks): the detached background hook child is now created through the
WMI service on Windows, so it escapes the host's job object instead of dying
with the hook. Before this, the session-start pull never ran on Windows
(killed about a second in, before its first log line). - feat(pull):
teamai.yamlmay declarescripts.postPull— a Node
entrypoint the CLI runs once a pull has fully finished, detached, with a
supervisor process enforcing its timeout and logging the outcome.
Verified on a Windows machine running the WorkBuddy host: the background child
is parented to WmiPrvSE.exe (outside the job) and the pull completes;
postPull: launched … → exited 0 end to end against a live team clone.
v0.22.0-er.6
Same patch set as er.5 after code review cleanups:
- hooks inject routes through the shared reconcile helper (honors
disabledAgents too; aligns with pull/init) - resource sync respects enabledAgents (no more ~/.hermes/skills seeding)
- usageReport: false gates per report target; local event log retained