Skip to content

fix: discover selected-provider IaC resources - #1023

Merged
intel352 merged 2 commits into
mainfrom
fix/provider-resource-discovery-20261004
Oct 4, 2026
Merged

intel352 merged 2 commits into
mainfrom
fix/provider-resource-discovery-20261004

Conversation

@intel352

@intel352 intel352 commented Oct 4, 2026 •

Copy link
Copy Markdown
Contributor

Summary

Discover provider-declared IaC resource types through the explicitly selected,
environment-resolved provider instead of relying only on infra. and platform.
prefixes. This fixes custom resources disappearing from plans, apply preflight,
environment output and preserved-input fingerprints.

  • Use an invocation-local installed-manifest catalog shared by classification
    and executable lookup. Reject conflicting raw top-level/legacy owner names
    before normalizing the same bytes; installed declarations diagnose intent but
    never authorize a different selected provider. Resolve only the effective
    routing/default references using existing environment semantics, while
    preserving raw payload references. Damaged unrelated metadata cannot veto a
    valid selected owner or canonical/application config; damaged needed metadata
    and selected duplicates remain fail-closed.
  • Wire both extraction paths, direct/dry-run apply, imports/environment handling
    and input collection. Keep public legacy helper behavior through an additive
    classifier-aware helper; preserve runtime service/driver/type/identity/state
    and stale-plan authority checks.
  • Exercise the actual CLI and two independently built external SDK providers,
    including persistence/restart/repeat, selected-provider negatives, custom input
    drift and safe rejection of a real old CLI's omission-derived delete plan.

No provider-specific implementation, dependency, RPC/schema, CI/release workflow,
or private application workaround changes.

Verification

All Go commands use Go 1.26.5 and GOWORK=off with readonly modules.

  • Compiled behavioral RED against existing entrypoints before implementation.
  • Initial implementation inverse: 27 fail / 1 pass / 0 skip; restored candidate:
    40 pass / 0 fail / 0 skip.
  • Corrected full race suite: 13,220 passing test events, zero failures and 51
    existing skips; all 151 tested packages pass plus 20 no-test-file packages.
    Both new native test parents and their seven subtests pass without skips in
    the required local acceptance run.
  • Final go vet ./..., go build ./..., actual CLI build, format/diff and existing
    public-workflow policy checks pass. Full golangci-lint 2.12.0 reports zero issues.
  • Corrected focused race: 206 pass / 0 fail / 0 skip. Builder native: 9 pass /
    0 fail / 0 skip, 124.800 seconds. Lead independently executed the complete
    corrected native matrix: 9 pass / 0 fail / 0 skip, package 133.240 seconds;
    integration 75.74 seconds, review regressions 55.03 seconds. All 42 observed
    SDK children are reaped and both automatic temporary roots are absent.
  • Actual immutable Darwin/arm64 v0.86.1 size/hash/version checked before execution.
    It runs PLAN ONLY on an owned mixed-state clone and proposes custom omission
    deletes. Candidate rejects that exact plan before mutation, preserves Workflow
    and provider state, and produces a complete replan. The old CLI never applies.
  • Explicit empty/wrong baseline artifact controls fail before fixtures; an
    optional unconfigured old-proof skip does not count as acceptance.

The full-repository and earlier native counts above describe the production
correction snapshot before the later fixture-only CI performance fix below.

The initial new-code review found two Important defects: raw interpolated routing
was rejected before dispatch expansion, and unrelated damaged metadata vetoed
valid configs. Compiled behavioral and actual native REDs reproduced both;
fixed-test unit/native inverse failures and restored GREENs exercise the narrow
corrections. One targeted serious changed-code recheck returned SHIP-IT with no
Critical or Important findings: all 15 classes checked, fresh 134/0/0 focused
race and all 12 hashes matching. That review is closed; no cosmetic review loop.
Final hashes were checked before and after the lead native proof. Local candidate
automatic VCS metadata reflects the parent checkout under nested Git worktrees
and is not release/source attestation.

This is original Task26/PR15 of the approved 26-task/15-PR recovery plan. Immutable
released-successor asset/module/native verification and the downstream private
app's complete eight-resource no-apply render remain separate acceptance gates.
No cloud apply, deployment, enrollment or spend was performed.

Scope Manifest

PR Count: 15
Tasks: 26
Status: Locked 2026-10-04T04:48:25Z

PR # Title Tasks Branch
15 Discover generic provider-declared IaC resources Task 26 fix/provider-resource-discovery-20261004

Design,
implementation plan.
This PR implements only its original row; it does not claim completion of the
whole recovery plan or the ten overall slimming outcomes.

Doc-reconciliation: clean. Runtime launch evidence from the earlier corrected
CLI/SDK execution, not fabricated sample output:

go test -race -json ./cmd/wfctl -run '^TestIaCResourceDiscoveryNative_' -count=1 -timeout=15m
TestIaCResourceDiscoveryNative_Integration: PASS (75.74s)
TestIaCResourceDiscoveryNative_ReviewCorrections: PASS (55.03s)
ok github.com/GoCodeAlone/workflow/cmd/wfctl 133.240s

The acceptance command uses TASK26_BASELINE_WFCTL set to the checksum-verified
immutable v0.86.1 Darwin/arm64 binary. Empty or mismatched explicit selection
fails before fixture launch; optional unconfigured skip is not acceptance.
Final full-run native parents also pass (78.68s and 51.06s). All 12 recorded
builder native roots, including failed/inverse paths, are absent; no sessions
or runtime fixtures remain.

Only the providers' file-backed external resource dependency is a fixture. The
CLI, manifest lookup, public SDK, typed driver boundary and saved-plan/state
logic are real. Intentional domain-rejection controls exit nonzero and are
asserted by the tests; they are not launch failures hidden by a success label.

CI Fixture Correction

The first Linux run 37187171230 failed at Go's default 10-minute package
deadline, with wfctl still compressing a later conformance fixture. Both new
native parents passed in 137.69 seconds. The exact base CI had already taken
600.831 seconds, leaving no practical package margin.

Commit 5ea61d7d changes only the native fixture environment: retain inherited
race-reporting policy and append atexit_sleep_ms=0, matching existing repository
fixtures. Race builds, failure exit codes, real CLI/SDK execution, workload/state
assertions and exact process cleanup are unchanged. No timeout, workflow,
dependency or global environment changes.

The policy regression fails before the change and with the fix removed, then
passes after restoration: five cases, no skips. The required baseline-backed
native matrix passes all nine cases in 52.637 seconds; all 42 SDK children are
reaped and temporary roots removed. Full wfctl race-and-coverage verification
under the DEFAULT deadline exits zero in 504.091 seconds: 3,301 completed cases,
five existing skips, no failures and 66.9% coverage. Three prompt-prefixed PASS
markers are accounted for explicitly; the unchanged deliberate nested sample
failure is separately checked by its passing fallback-error-propagation parent.
Build, vet, zero-issue lint, format/diff and both policy scripts pass.

One bounded adversarial review of this fixture-only diff found no substantive
issues, with a fresh five-case regression and unchanged hash. It is closed;
earlier resolved discovery reviews remain closed. New exact-head Linux CI
37190581128 is running, not claimed accepted. Merge, immutable release and
published native/module/downstream render proof remain separate gates.

@github-actions

github-actions Bot commented Oct 4, 2026 •

Copy link
Copy Markdown

⏱ Benchmark Results

✅ No significant performance regressions detected.

benchstat comparison (baseline → PR)
## benchstat: baseline → PR
baseline-bench.txt:310: parsing iteration count: invalid syntax
baseline-bench.txt:309530: parsing iteration count: invalid syntax
baseline-bench.txt:616785: parsing iteration count: invalid syntax
baseline-bench.txt:876808: parsing iteration count: invalid syntax
baseline-bench.txt:1170434: parsing iteration count: invalid syntax
baseline-bench.txt:1678059: parsing iteration count: invalid syntax
benchmark-results.txt:310: parsing iteration count: invalid syntax
benchmark-results.txt:277235: parsing iteration count: invalid syntax
benchmark-results.txt:606681: parsing iteration count: invalid syntax
benchmark-results.txt:1127728: parsing iteration count: invalid syntax
benchmark-results.txt:1435904: parsing iteration count: invalid syntax
benchmark-results.txt:1743195: parsing iteration count: invalid syntax
goos: linux
goarch: amd64
pkg: github.com/GoCodeAlone/workflow/dynamic
cpu: AMD EPYC 7763 64-Core Processor                
                            │ baseline-bench.txt │       benchmark-results.txt        │
                            │       sec/op       │    sec/op     vs base              │
InterpreterCreation-4               7.017m ± 68%   8.048m ± 61%       ~ (p=0.818 n=6)
ComponentLoad-4                     3.615m ± 10%   3.671m ±  4%       ~ (p=0.093 n=6)
ComponentExecute-4                  1.961µ ±  1%   1.991µ ±  2%  +1.56% (p=0.009 n=6)
PoolContention/workers-1-4          1.101µ ±  2%   1.115µ ±  4%       ~ (p=0.240 n=6)
PoolContention/workers-2-4          1.116µ ±  3%   1.098µ ±  1%  -1.61% (p=0.002 n=6)
PoolContention/workers-4-4          1.115µ ±  1%   1.095µ ±  1%  -1.79% (p=0.002 n=6)
PoolContention/workers-8-4          1.104µ ±  1%   1.101µ ±  1%       ~ (p=0.688 n=6)
PoolContention/workers-16-4         1.102µ ±  4%   1.103µ ±  1%       ~ (p=0.974 n=6)
ComponentLifecycle-4                3.672m ±  1%   3.649m ±  0%  -0.63% (p=0.041 n=6)
SourceValidation-4                  2.324µ ±  0%   2.330µ ±  1%       ~ (p=0.227 n=6)
RegistryConcurrent-4                819.4n ±  3%   795.9n ±  3%       ~ (p=0.132 n=6)
LoaderLoadFromString-4              3.697m ±  2%   3.722m ±  2%       ~ (p=0.240 n=6)
geomean                             18.95µ         19.14µ        +0.99%

                            │ baseline-bench.txt │        benchmark-results.txt         │
                            │        B/op        │     B/op      vs base                │
InterpreterCreation-4               2.027Mi ± 0%   2.027Mi ± 0%       ~ (p=0.974 n=6)
ComponentLoad-4                     2.180Mi ± 0%   2.180Mi ± 0%       ~ (p=0.675 n=6)
ComponentExecute-4                  1.203Ki ± 0%   1.203Ki ± 0%       ~ (p=1.000 n=6) ¹
PoolContention/workers-1-4          1.203Ki ± 0%   1.203Ki ± 0%       ~ (p=1.000 n=6) ¹
PoolContention/workers-2-4          1.203Ki ± 0%   1.203Ki ± 0%       ~ (p=1.000 n=6) ¹
PoolContention/workers-4-4          1.203Ki ± 0%   1.203Ki ± 0%       ~ (p=1.000 n=6) ¹
PoolContention/workers-8-4          1.203Ki ± 0%   1.203Ki ± 0%       ~ (p=1.000 n=6) ¹
PoolContention/workers-16-4         1.203Ki ± 0%   1.203Ki ± 0%       ~ (p=1.000 n=6) ¹
ComponentLifecycle-4                2.183Mi ± 0%   2.183Mi ± 0%       ~ (p=0.848 n=6)
SourceValidation-4                  1.984Ki ± 0%   1.984Ki ± 0%       ~ (p=1.000 n=6) ¹
RegistryConcurrent-4                1.133Ki ± 0%   1.133Ki ± 0%       ~ (p=1.000 n=6) ¹
LoaderLoadFromString-4              2.182Mi ± 0%   2.182Mi ± 0%       ~ (p=1.000 n=6)
geomean                             15.25Ki        15.25Ki       -0.00%
¹ all samples are equal

                            │ baseline-bench.txt │        benchmark-results.txt        │
                            │     allocs/op      │  allocs/op   vs base                │
InterpreterCreation-4                15.68k ± 0%   15.68k ± 0%       ~ (p=1.000 n=6)
ComponentLoad-4                      18.02k ± 0%   18.02k ± 0%       ~ (p=1.000 n=6)
ComponentExecute-4                    25.00 ± 0%    25.00 ± 0%       ~ (p=1.000 n=6) ¹
PoolContention/workers-1-4            25.00 ± 0%    25.00 ± 0%       ~ (p=1.000 n=6) ¹
PoolContention/workers-2-4            25.00 ± 0%    25.00 ± 0%       ~ (p=1.000 n=6) ¹
PoolContention/workers-4-4            25.00 ± 0%    25.00 ± 0%       ~ (p=1.000 n=6) ¹
PoolContention/workers-8-4            25.00 ± 0%    25.00 ± 0%       ~ (p=1.000 n=6) ¹
PoolContention/workers-16-4           25.00 ± 0%    25.00 ± 0%       ~ (p=1.000 n=6) ¹
ComponentLifecycle-4                 18.07k ± 0%   18.07k ± 0%       ~ (p=1.000 n=6) ¹
SourceValidation-4                    32.00 ± 0%    32.00 ± 0%       ~ (p=1.000 n=6) ¹
RegistryConcurrent-4                  2.000 ± 0%    2.000 ± 0%       ~ (p=1.000 n=6) ¹
LoaderLoadFromString-4               18.06k ± 0%   18.06k ± 0%       ~ (p=1.000 n=6) ¹
geomean                               183.3         183.3       +0.00%
¹ all samples are equal

pkg: github.com/GoCodeAlone/workflow/middleware
                                  │ baseline-bench.txt │       benchmark-results.txt        │
                                  │       sec/op       │    sec/op     vs base              │
CircuitBreakerDetection-4                  291.8n ± 4%   295.7n ± 10%  +1.37% (p=0.026 n=6)
CircuitBreakerExecution_Success-4          22.54n ± 0%   22.53n ±  0%       ~ (p=0.725 n=6)
CircuitBreakerExecution_Failure-4          65.82n ± 1%   66.41n ±  1%  +0.90% (p=0.004 n=6)
geomean                                    75.64n        76.20n        +0.75%

                                  │ baseline-bench.txt │       benchmark-results.txt        │
                                  │        B/op        │    B/op     vs base                │
CircuitBreakerDetection-4                 144.0 ± 0%     144.0 ± 0%       ~ (p=1.000 n=6) ¹
CircuitBreakerExecution_Success-4         0.000 ± 0%     0.000 ± 0%       ~ (p=1.000 n=6) ¹
CircuitBreakerExecution_Failure-4         0.000 ± 0%     0.000 ± 0%       ~ (p=1.000 n=6) ¹
geomean                                              ²               +0.00%               ²
¹ all samples are equal
² summaries must be >0 to compute geomean

                                  │ baseline-bench.txt │       benchmark-results.txt        │
                                  │     allocs/op      │ allocs/op   vs base                │
CircuitBreakerDetection-4                 1.000 ± 0%     1.000 ± 0%       ~ (p=1.000 n=6) ¹
CircuitBreakerExecution_Success-4         0.000 ± 0%     0.000 ± 0%       ~ (p=1.000 n=6) ¹
CircuitBreakerExecution_Failure-4         0.000 ± 0%     0.000 ± 0%       ~ (p=1.000 n=6) ¹
geomean                                              ²               +0.00%               ²
¹ all samples are equal
² summaries must be >0 to compute geomean

pkg: github.com/GoCodeAlone/workflow/module
                                 │ baseline-bench.txt │       benchmark-results.txt        │
                                 │       sec/op       │    sec/op     vs base              │
IaCStateBackend_InProcess-4              313.6n ± 30%   315.9n ±  1%       ~ (p=0.065 n=6)
IaCStateBackend_GRPC-4                   9.261m ±  4%   9.415m ± 18%       ~ (p=0.180 n=6)
JQTransform_Simple-4                     699.7n ± 43%   702.0n ± 43%       ~ (p=0.738 n=6)
JQTransform_ObjectConstruction-4         1.645µ ±  1%   1.660µ ±  1%  +0.88% (p=0.013 n=6)
JQTransform_ArraySelect-4                3.594µ ±  2%   3.670µ ±  2%  +2.10% (p=0.002 n=6)
JQTransform_Complex-4                    40.34µ ±  1%   41.63µ ±  1%  +3.18% (p=0.002 n=6)
JQTransform_Throughput-4                 1.977µ ±  1%   2.009µ ±  2%  +1.59% (p=0.002 n=6)
SSEPublishDelivery-4                     69.47n ±  1%   69.16n ±  1%       ~ (p=0.093 n=6)
geomean                                  4.008µ         4.058µ        +1.25%

                                 │ baseline-bench.txt │        benchmark-results.txt         │
                                 │        B/op        │     B/op      vs base                │
IaCStateBackend_InProcess-4              416.0 ± 0%       416.0 ± 0%       ~ (p=1.000 n=6) ¹
IaCStateBackend_GRPC-4                 5.856Mi ± 7%     5.786Mi ± 9%       ~ (p=0.937 n=6)
JQTransform_Simple-4                   1.273Ki ± 0%     1.273Ki ± 0%       ~ (p=1.000 n=6) ¹
JQTransform_ObjectConstruction-4       1.773Ki ± 0%     1.773Ki ± 0%       ~ (p=1.000 n=6) ¹
JQTransform_ArraySelect-4              2.625Ki ± 0%     2.625Ki ± 0%       ~ (p=1.000 n=6) ¹
JQTransform_Complex-4                  16.31Ki ± 0%     16.31Ki ± 0%       ~ (p=1.000 n=6) ¹
JQTransform_Throughput-4               1.984Ki ± 0%     1.984Ki ± 0%       ~ (p=1.000 n=6) ¹
SSEPublishDelivery-4                     0.000 ± 0%       0.000 ± 0%       ~ (p=1.000 n=6) ¹
geomean                                             ²                 -0.15%               ²
¹ all samples are equal
² summaries must be >0 to compute geomean

                                 │ baseline-bench.txt │        benchmark-results.txt        │
                                 │     allocs/op      │  allocs/op   vs base                │
IaCStateBackend_InProcess-4              2.000 ± 0%      2.000 ± 0%       ~ (p=1.000 n=6) ¹
IaCStateBackend_GRPC-4                  6.833k ± 0%     6.837k ± 0%       ~ (p=0.327 n=6)
JQTransform_Simple-4                     10.00 ± 0%      10.00 ± 0%       ~ (p=1.000 n=6) ¹
JQTransform_ObjectConstruction-4         15.00 ± 0%      15.00 ± 0%       ~ (p=1.000 n=6) ¹
JQTransform_ArraySelect-4                30.00 ± 0%      30.00 ± 0%       ~ (p=1.000 n=6) ¹
JQTransform_Complex-4                    328.0 ± 0%      328.0 ± 0%       ~ (p=1.000 n=6) ¹
JQTransform_Throughput-4                 17.00 ± 0%      17.00 ± 0%       ~ (p=1.000 n=6) ¹
SSEPublishDelivery-4                     0.000 ± 0%      0.000 ± 0%       ~ (p=1.000 n=6) ¹
geomean                                             ²                +0.01%               ²
¹ all samples are equal
² summaries must be >0 to compute geomean

pkg: github.com/GoCodeAlone/workflow/schema
                                    │ baseline-bench.txt │       benchmark-results.txt        │
                                    │       sec/op       │    sec/op     vs base              │
SchemaValidation_Simple-4                   1.095µ ±  6%   1.096µ ±  6%       ~ (p=1.000 n=6)
SchemaValidation_AllFields-4                1.661µ ± 12%   1.679µ ± 16%       ~ (p=0.147 n=6)
SchemaValidation_FormatValidation-4         1.589µ ±  5%   1.575µ ±  1%       ~ (p=0.145 n=6)
SchemaValidation_ManySchemas-4              1.819µ ±  2%   1.797µ ±  5%       ~ (p=0.288 n=6)
geomean                                     1.514µ         1.510µ        -0.24%

                                    │ baseline-bench.txt │       benchmark-results.txt        │
                                    │        B/op        │    B/op     vs base                │
SchemaValidation_Simple-4                   0.000 ± 0%     0.000 ± 0%       ~ (p=1.000 n=6) ¹
SchemaValidation_AllFields-4                0.000 ± 0%     0.000 ± 0%       ~ (p=1.000 n=6) ¹
SchemaValidation_FormatValidation-4         0.000 ± 0%     0.000 ± 0%       ~ (p=1.000 n=6) ¹
SchemaValidation_ManySchemas-4              0.000 ± 0%     0.000 ± 0%       ~ (p=1.000 n=6) ¹
geomean                                                ²               +0.00%               ²
¹ all samples are equal
² summaries must be >0 to compute geomean

                                    │ baseline-bench.txt │       benchmark-results.txt        │
                                    │     allocs/op      │ allocs/op   vs base                │
SchemaValidation_Simple-4                   0.000 ± 0%     0.000 ± 0%       ~ (p=1.000 n=6) ¹
SchemaValidation_AllFields-4                0.000 ± 0%     0.000 ± 0%       ~ (p=1.000 n=6) ¹
SchemaValidation_FormatValidation-4         0.000 ± 0%     0.000 ± 0%       ~ (p=1.000 n=6) ¹
SchemaValidation_ManySchemas-4              0.000 ± 0%     0.000 ± 0%       ~ (p=1.000 n=6) ¹
geomean                                                ²               +0.00%               ²
¹ all samples are equal
² summaries must be >0 to compute geomean

pkg: github.com/GoCodeAlone/workflow/store
                                   │ baseline-bench.txt │       benchmark-results.txt        │
                                   │       sec/op       │    sec/op     vs base              │
EventStoreAppend_InMemory-4                1.220µ ± 14%   1.241µ ± 14%       ~ (p=0.937 n=6)
EventStoreAppend_SQLite-4                  1.186m ±  2%   1.188m ±  3%       ~ (p=0.818 n=6)
GetTimeline_InMemory/events-10-4           14.56µ ±  4%   14.56µ ±  4%       ~ (p=0.818 n=6)
GetTimeline_InMemory/events-50-4           83.65µ ±  4%   81.54µ ±  5%       ~ (p=0.180 n=6)
GetTimeline_InMemory/events-100-4          162.4µ ±  3%   166.3µ ±  4%       ~ (p=0.132 n=6)
GetTimeline_InMemory/events-500-4          652.6µ ± 24%   672.8µ ± 29%  +3.10% (p=0.041 n=6)
GetTimeline_InMemory/events-1000-4         1.319m ±  0%   1.374m ±  1%  +4.21% (p=0.002 n=6)
GetTimeline_SQLite/events-10-4             71.54µ ±  1%   73.43µ ±  1%  +2.64% (p=0.002 n=6)
GetTimeline_SQLite/events-50-4             205.2µ ±  1%   208.9µ ±  1%  +1.80% (p=0.002 n=6)
GetTimeline_SQLite/events-100-4            367.2µ ±  1%   375.4µ ±  1%  +2.24% (p=0.002 n=6)
GetTimeline_SQLite/events-500-4            1.658m ±  1%   1.695m ±  1%  +2.26% (p=0.002 n=6)
GetTimeline_SQLite/events-1000-4           3.258m ±  1%   3.366m ±  1%  +3.29% (p=0.002 n=6)
geomean                                    209.6µ         213.2µ        +1.76%

                                   │ baseline-bench.txt │        benchmark-results.txt         │
                                   │        B/op        │     B/op      vs base                │
EventStoreAppend_InMemory-4                  796.5 ± 6%     808.5 ± 4%       ~ (p=0.506 n=6)
EventStoreAppend_SQLite-4                  2.051Ki ± 1%   2.052Ki ± 2%       ~ (p=0.989 n=6)
GetTimeline_InMemory/events-10-4           7.953Ki ± 0%   7.953Ki ± 0%       ~ (p=1.000 n=6) ¹
GetTimeline_InMemory/events-50-4           46.62Ki ± 0%   46.62Ki ± 0%       ~ (p=1.000 n=6) ¹
GetTimeline_InMemory/events-100-4          94.48Ki ± 0%   94.48Ki ± 0%       ~ (p=1.000 n=6) ¹
GetTimeline_InMemory/events-500-4          472.8Ki ± 0%   472.8Ki ± 0%       ~ (p=1.000 n=6)
GetTimeline_InMemory/events-1000-4         944.3Ki ± 0%   944.3Ki ± 0%  -0.00% (p=0.013 n=6)
GetTimeline_SQLite/events-10-4             15.59Ki ± 0%   15.59Ki ± 0%       ~ (p=1.000 n=6) ¹
GetTimeline_SQLite/events-50-4             80.56Ki ± 0%   80.56Ki ± 0%       ~ (p=1.000 n=6) ¹
GetTimeline_SQLite/events-100-4            162.1Ki ± 0%   162.1Ki ± 0%       ~ (p=1.000 n=6) ¹
GetTimeline_SQLite/events-500-4            777.4Ki ± 0%   777.4Ki ± 0%       ~ (p=0.152 n=6)
GetTimeline_SQLite/events-1000-4           1.503Mi ± 0%   1.503Mi ± 0%  -0.00% (p=0.002 n=6)
geomean                                    65.36Ki        65.44Ki       +0.13%
¹ all samples are equal

                                   │ baseline-bench.txt │        benchmark-results.txt        │
                                   │     allocs/op      │  allocs/op   vs base                │
EventStoreAppend_InMemory-4                  7.000 ± 0%    7.000 ± 0%       ~ (p=1.000 n=6) ¹
EventStoreAppend_SQLite-4                    55.00 ± 0%    55.00 ± 0%       ~ (p=1.000 n=6) ¹
GetTimeline_InMemory/events-10-4             125.0 ± 0%    125.0 ± 0%       ~ (p=1.000 n=6) ¹
GetTimeline_InMemory/events-50-4             653.0 ± 0%    653.0 ± 0%       ~ (p=1.000 n=6) ¹
GetTimeline_InMemory/events-100-4           1.306k ± 0%   1.306k ± 0%       ~ (p=1.000 n=6) ¹
GetTimeline_InMemory/events-500-4           6.514k ± 0%   6.514k ± 0%       ~ (p=1.000 n=6) ¹
GetTimeline_InMemory/events-1000-4          13.02k ± 0%   13.02k ± 0%       ~ (p=1.000 n=6) ¹
GetTimeline_SQLite/events-10-4               316.0 ± 0%    316.0 ± 0%       ~ (p=1.000 n=6) ¹
GetTimeline_SQLite/events-50-4              1.486k ± 0%   1.486k ± 0%       ~ (p=1.000 n=6) ¹
GetTimeline_SQLite/events-100-4             2.940k ± 0%   2.940k ± 0%       ~ (p=1.000 n=6) ¹
GetTimeline_SQLite/events-500-4             14.79k ± 0%   14.79k ± 0%       ~ (p=1.000 n=6) ¹
GetTimeline_SQLite/events-1000-4            29.80k ± 0%   29.80k ± 0%       ~ (p=1.000 n=6) ¹
geomean                                     1.065k        1.065k       +0.00%
¹ all samples are equal

Benchmarks run with go test -bench=. -benchmem -count=6.
Regressions ≥ 20% are flagged. Results compared via benchstat.

@intel352
intel352 merged commit 92aecb7 into main Oct 4, 2026
28 checks passed
@intel352
intel352 deleted the fix/provider-resource-discovery-20261004 branch October 4, 2026 09:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant