Skip to content

walkerOS v4.1.1

Choose a tag to compare

@github-actions github-actions released this 27 May 10:21
· 69 commits to main since this release
0a4dd58

Changes

The simulate functions (simulateSource, simulateTransformer,
simulateDestination) now return the unified Simulation.Result shape with
captured events and intercepted calls, instead of the internal push result.
PushResult no longer carries the simulate-only captured, usage, and
perDestination fields.

Rename the contract inheritance key from extends to extend for consistency
with the rest of the flow config vocabulary. Contracts that inherit from another
named contract now use "extend": "<name>".

Add the d8a.tech web destination for a GA4-compatible and warehouse-native
analytics platform.

Export the $-ref completion builders (getVariableCompletions,
getEnvCompletions, getStoreCompletions, getFlowCompletions,
getSecretCompletions) and the CompletionEntry type from the package barrel
so custom inputs can reuse them outside Monaco.

Export getMappingPathCompletions and getContractCompletions so custom form
inputs can seed contract-driven path and $contract reference suggestions
outside Monaco. Add allowedRefKinds (the cursor-scoped $-ref gate, now
covering $contract) and getJsonPathAtOffset, and gate the open $
completion fallback by the same scope rule so Monaco offers only the ref kinds
valid at the cursor.

Add Google Ads Enhanced Conversions support. Set enhancedConversions on the
ads settings to map event fields to Google's user_data, sent before each
conversion.

The project, flow, and deployment list operations now accept optional cursor
and limit arguments and return a nextCursor to fetch the next page. Listing
without these arguments is unchanged and returns all results. In the MCP, the
project_manage, flow_manage, and deploy_manage tools expose cursor and
limit on their list action.

Add extend and remove to mapping rules. extend deep-merges a partial rule
onto a package-shipped default (a null value clears an inherited field);
remove strips fields from the produced payload. Rules without either keyword
keep the existing replace behavior.

Send the Conversions API access token in an Authorization: Bearer header
instead of the URL query string, so the credential no longer appears in server,
proxy, or APM request logs.

The collector exposes observers: Set<ObserverFn> so any subscriber can watch
every step of the pipeline. Each source, transformer, destination, and store
call emits a FlowState record with timings, mapping match, consent state, and
skip reasons. createTelemetryObserver from @walkeros/core batches emissions
to an HTTP endpoint, and the CLI runtime picks up the traceUntil flag from its
heartbeat so trace mode toggles take effect without a redeploy.

Fix latent type errors in Panel props and attribute tree builder, and enable
typecheck script so the package participates in CI type coverage.

New server-side bot and AI-agent detection transformer. Annotates events with
user.botScore, user.agentScore, and optionally user.agentProduct (the
matched user-agent, e.g. 'ChatGPT-User'). It wraps isbot and a curated
AI-agent UA map. Annotate-only — events are never dropped; destinations filter
via mapping.

Web requests sent via fetch now support a configurable timeout, defaulting to 10
seconds. A stalled network request is aborted instead of hanging indefinitely.

The browser source now releases its DOM event listeners, pulse intervals, and
wait timeouts when the source is destroyed. This prevents memory growth and
avoids duplicate events when the source is torn down or re-initialized.

Published Packages