Skip to content

Add editorconfig validation to linting - #7594

Merged
BridgeAR merged 6 commits into
masterfrom
editorconfig-checker
Jun 19, 2026
Merged

Add editorconfig validation to linting#7594
BridgeAR merged 6 commits into
masterfrom
editorconfig-checker

Conversation

@rochdev

@rochdev rochdev commented Feb 22, 2026

Copy link
Copy Markdown
Member

What does this PR do?

Add editorconfig validation to linting.

Motivation

These rules are not currently enforced unless the extension is used and a specific file is touched.

Additional Notes

@github-actions

github-actions Bot commented Feb 22, 2026

Copy link
Copy Markdown
Contributor

Overall package size

Self size: 6.25 MB
Deduped: 7.32 MB
No deduping: 7.32 MB

Dependency sizes | name | version | self size | total size | |------|---------|-----------|------------| | import-in-the-middle | 3.1.0 | 101.28 kB | 840.46 kB | | opentracing | 0.14.7 | 194.81 kB | 194.81 kB | | dc-polyfill | 0.1.11 | 25.74 kB | 25.74 kB |

🤖 This report was automatically generated by heaviest-objects-in-the-universe

@codecov

codecov Bot commented Feb 22, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 72.72727% with 3 lines in your changes missing coverage. Please review.
✅ Project coverage is 72.52%. Comparing base (c882011) to head (c559ab5).

Files with missing lines Patch % Lines
packages/dd-trace/src/llmobs/plugins/genai/util.js 0.00% 3 Missing ⚠️
Additional details and impacted files
@@             Coverage Diff             @@
##           master    #7594       +/-   ##
===========================================
- Coverage   92.99%   72.52%   -20.48%     
===========================================
  Files         874      763      -111     
  Lines       50169    44551     -5618     
  Branches     9871     6558     -3313     
===========================================
- Hits        46653    32309    -14344     
- Misses       3516    12242     +8726     
Flag Coverage Δ
aiguard-integration-active ?
aiguard-integration-latest ?
aiguard-integration-maintenance ?
aiguard-macos ?
aiguard-ubuntu ?
aiguard-windows ?
apm-capabilities-tracing-macos ?
apm-capabilities-tracing-ubuntu-active ?
apm-capabilities-tracing-ubuntu-latest ?
apm-capabilities-tracing-ubuntu-maintenance ?
apm-capabilities-tracing-ubuntu-oldest ?
apm-capabilities-tracing-windows 47.87% <62.50%> (+<0.01%) ⬆️
apm-integrations-aerospike-18-gte.5.2.0 ?
apm-integrations-aerospike-20-gte.5.5.0 ?
apm-integrations-aerospike-22-gte.5.12.1 ?
apm-integrations-aerospike-22-gte.6.0.0 ?
apm-integrations-aerospike-eol- ?
apm-integrations-child-process ?
apm-integrations-confluentinc-kafka-javascript-18 ?
apm-integrations-confluentinc-kafka-javascript-20 ?
apm-integrations-confluentinc-kafka-javascript-22 ?
apm-integrations-confluentinc-kafka-javascript-24 ?
apm-integrations-couchbase-18 ?
apm-integrations-couchbase-eol ?
apm-integrations-dns ?
apm-integrations-elasticsearch ?
apm-integrations-http-latest ?
apm-integrations-http-maintenance ?
apm-integrations-http-oldest ?
apm-integrations-http2 ?
apm-integrations-kafkajs-latest 40.02% <66.66%> (-0.08%) ⬇️
apm-integrations-kafkajs-oldest 40.21% <66.66%> (-0.07%) ⬇️
apm-integrations-net ?
apm-integrations-next-11.1.4 ?
apm-integrations-next-12.3.7 ?
apm-integrations-next-13.0.0 ?
apm-integrations-next-13.2.0 ?
apm-integrations-next-13.5.11 ?
apm-integrations-next-14.0.0 ?
apm-integrations-next-14.2.35 ?
apm-integrations-next-14.2.6 ?
apm-integrations-next-14.2.7 ?
apm-integrations-next-15.0.0 ?
apm-integrations-next-15.4.0 ?
apm-integrations-next-latest ?
apm-integrations-oracledb ?
apm-integrations-prisma-18-gte.6.16.0.and.lt.7.0.0 ?
apm-integrations-prisma-latest-all ?
apm-integrations-restify ?
apm-integrations-sharedb ?
apm-integrations-tedious ?
appsec-express ?
appsec-fastify ?
appsec-graphql ?
appsec-integration-active ?
appsec-integration-latest ?
appsec-integration-maintenance ?
appsec-integration-oldest ?
appsec-kafka ?
appsec-ldapjs ?
appsec-lodash ?
appsec-macos ?
appsec-mongodb-core ?
appsec-mongoose ?
appsec-next-latest-11.1.4 ?
appsec-next-latest-12.3.7 ?
appsec-next-latest-13.0.0 ?
appsec-next-latest-13.2.0 ?
appsec-next-latest-13.5.11 ?
appsec-next-latest-14.0.0 ?
appsec-next-latest-14.2.6 ?
appsec-next-latest-14.2.7 ?
appsec-next-latest-15.0.0 ?
appsec-next-latest-latest ?
appsec-next-oldest-12.3.7 ?
appsec-next-oldest-13.0.0 ?
appsec-next-oldest-13.2.0 ?
appsec-next-oldest-13.5.11 ?
appsec-next-oldest-14.0.0 ?
appsec-next-oldest-14.2.35 ?
appsec-next-oldest-14.2.6 ?
appsec-next-oldest-15.0.0 ?
appsec-next-oldest-latest ?
appsec-node-serialize ?
appsec-passport ?
appsec-postgres ?
appsec-sourcing ?
appsec-stripe ?
appsec-template ?
appsec-ubuntu 57.24% <66.66%> (-0.06%) ⬇️
appsec-windows 57.06% <66.66%> (-0.06%) ⬇️
debugger-ubuntu-active 43.51% <0.00%> (ø)
debugger-ubuntu-latest 43.51% <0.00%> (ø)
debugger-ubuntu-maintenance 43.64% <0.00%> (ø)
debugger-ubuntu-oldest 43.94% <0.00%> (ø)
instrumentations-instrumentation-ai ?
instrumentations-instrumentation-aws-sdk ?
instrumentations-instrumentation-bluebird ?
instrumentations-instrumentation-body-parser ?
instrumentations-instrumentation-child_process ?
instrumentations-instrumentation-cookie-parser ?
instrumentations-instrumentation-couchbase-18 ?
instrumentations-instrumentation-couchbase-eol ?
instrumentations-instrumentation-crypto ?
instrumentations-instrumentation-express-mongo-sanitize ?
instrumentations-instrumentation-express-multi-version ?
instrumentations-instrumentation-express-session ?
instrumentations-instrumentation-fastify ?
instrumentations-instrumentation-fetch ?
instrumentations-instrumentation-generic-pool ?
instrumentations-instrumentation-hono ?
instrumentations-instrumentation-http ?
instrumentations-instrumentation-http-client-options ?
instrumentations-instrumentation-kafkajs ?
instrumentations-instrumentation-knex ?
instrumentations-instrumentation-light-my-request ?
instrumentations-instrumentation-mongoose ?
instrumentations-instrumentation-multer ?
instrumentations-instrumentation-mysql2 ?
instrumentations-instrumentation-openai-lifecycle ?
instrumentations-instrumentation-otel-sdk-trace ?
instrumentations-instrumentation-passport ?
instrumentations-instrumentation-passport-http ?
instrumentations-instrumentation-passport-local ?
instrumentations-instrumentation-pg ?
instrumentations-instrumentation-promise ?
instrumentations-instrumentation-promise-js ?
instrumentations-instrumentation-q ?
instrumentations-instrumentation-router ?
instrumentations-instrumentation-stripe ?
instrumentations-instrumentation-url ?
instrumentations-instrumentation-when ?
instrumentations-instrumentation-zlib ?
instrumentations-integration-esbuild-0.16.12-active ?
instrumentations-integration-esbuild-0.16.12-latest ?
instrumentations-integration-esbuild-0.16.12-maintenance ?
instrumentations-integration-esbuild-0.16.12-oldest ?
instrumentations-integration-esbuild-latest-latest ?
instrumentations-integration-esbuild-latest-oldest ?
llmobs-ai ?
llmobs-anthropic ?
llmobs-bedrock ?
llmobs-google-genai ?
llmobs-langchain ?
llmobs-openai-latest ?
llmobs-openai-oldest ?
llmobs-sdk-active ?
llmobs-sdk-latest ?
llmobs-sdk-maintenance ?
llmobs-sdk-oldest ?
llmobs-vertex-ai ?
master-coverage 72.52% <72.72%> (?)
openfeature-macos ?
openfeature-ubuntu ?
openfeature-unit-active ?
openfeature-unit-latest ?
openfeature-unit-maintenance ?
openfeature-unit-oldest ?
openfeature-windows ?
platform-core ?
platform-esbuild ?
platform-instrumentations-misc ?
platform-integration-active ?
platform-integration-latest ?
platform-integration-oldest ?
platform-shimmer ?
platform-unit-guardrails ?
plugins-aws-durable-execution-sdk-js ?
plugins-axios ?
plugins-azure-cosmos ?
plugins-azure-event-hubs ?
plugins-azure-service-bus ?
plugins-body-parser ?
plugins-bullmq ?
plugins-cookie ?
plugins-cookie-parser ?
plugins-crypto ?
plugins-dd-trace-api ?
plugins-express-mongo-sanitize ?
plugins-express-session ?
plugins-fastify ?
plugins-fs ?
plugins-generic-pool ?
plugins-google-cloud-pubsub ?
plugins-grpc ?
plugins-handlebars ?
plugins-hapi ?
plugins-hono ?
plugins-ioredis ?
plugins-knex ?
plugins-langgraph ?
plugins-light-my-request ?
plugins-limitd-client ?
plugins-lodash ?
plugins-mariadb ?
plugins-memcached ?
plugins-microgateway-core ?
plugins-modelcontextprotocol-sdk ?
plugins-mongodb ?
plugins-mongodb-core ?
plugins-multer ?
plugins-mysql ?
plugins-mysql2 ?
plugins-nats ?
plugins-node-serialize ?
plugins-opensearch ?
plugins-passport-http ?
plugins-pino ?
plugins-postgres ?
plugins-process ?
plugins-pug ?
plugins-redis ?
plugins-router ?
plugins-sequelize ?
plugins-test-and-upstream-amqp10 ?
plugins-test-and-upstream-amqplib ?
plugins-test-and-upstream-apollo ?
plugins-test-and-upstream-avsc ?
plugins-test-and-upstream-bunyan ?
plugins-test-and-upstream-connect ?
plugins-test-and-upstream-graphql ?
plugins-test-and-upstream-koa ?
plugins-test-and-upstream-protobufjs ?
plugins-test-and-upstream-rhea ?
plugins-undici ?
plugins-url ?
plugins-valkey ?
plugins-vm ?
plugins-winston ?
plugins-ws ?
profiling-macos ?
profiling-ubuntu 43.48% <0.00%> (-0.07%) ⬇️
profiling-windows ?
serverless-aws-sdk-latest-bedrockruntime ?
serverless-aws-sdk-latest-client ?
serverless-aws-sdk-latest-dynamodb ?
serverless-aws-sdk-latest-kinesis ?
serverless-aws-sdk-latest-lambda ?
serverless-aws-sdk-latest-s3 ?
serverless-aws-sdk-latest-sns ?
serverless-aws-sdk-latest-sqs ?
serverless-aws-sdk-latest-stepfunctions ?
serverless-aws-sdk-latest-util ?
serverless-aws-sdk-oldest-aws-sdk ?
serverless-aws-sdk-oldest-client ?
serverless-aws-sdk-oldest-eventbridge ?
serverless-aws-sdk-oldest-kinesis 37.18% <66.66%> (-0.07%) ⬇️
serverless-aws-sdk-oldest-lambda ?
serverless-aws-sdk-oldest-s3 ?
serverless-aws-sdk-oldest-serverless-peer-service ?
serverless-aws-sdk-oldest-sns ?
serverless-aws-sdk-oldest-sqs ?
serverless-aws-sdk-oldest-stepfunctions ?
serverless-aws-sdk-oldest-util ?
serverless-azure-durable-functions ?
serverless-azure-functions-eventhubs 38.23% <66.66%> (ø)
serverless-azure-functions-servicebus 38.29% <66.66%> (ø)
serverless-lambda ?
test-optimization-cucumber-latest-7.0.0 ?
test-optimization-cucumber-latest-latest 52.66% <0.00%> (+0.11%) ⬆️
test-optimization-cucumber-oldest-7.0.0 ?
test-optimization-cypress-latest-12.0.0-commonJS 44.11% <0.00%> (-5.09%) ⬇️
test-optimization-cypress-latest-12.0.0-esm 44.38% <0.00%> (-4.84%) ⬇️
test-optimization-cypress-latest-14.5.4-commonJS 44.10% <0.00%> (-1.76%) ⬇️
test-optimization-cypress-latest-14.5.4-esm 44.24% <0.00%> (-4.53%) ⬇️
test-optimization-cypress-latest-latest-commonJS 45.42% <0.00%> (-3.80%) ⬇️
test-optimization-cypress-latest-latest-esm 45.55% <0.00%> (-4.01%) ⬇️
test-optimization-cypress-oldest-12.0.0-commonJS ?
test-optimization-cypress-oldest-12.0.0-esm 44.96% <0.00%> (-4.32%) ⬇️
test-optimization-cypress-oldest-14.5.4-commonJS 45.02% <0.00%> (-2.67%) ⬇️
test-optimization-cypress-oldest-14.5.4-esm 45.15% <0.00%> (-4.01%) ⬇️
test-optimization-jest-latest-latest ?
test-optimization-jest-latest-oldest ?
test-optimization-jest-oldest-latest 49.96% <0.00%> (-5.38%) ⬇️
test-optimization-jest-oldest-oldest 49.06% <0.00%> (-5.16%) ⬇️
test-optimization-mocha-latest-latest 53.61% <50.00%> (+0.08%) ⬆️
test-optimization-mocha-latest-oldest ?
test-optimization-mocha-oldest-latest 53.74% <50.00%> (+0.08%) ⬆️
test-optimization-mocha-oldest-oldest ?
test-optimization-playwright-latest-latest-playwright-active-test-span ?
test-optimization-playwright-latest-latest-playwright-atr ?
test-optimization-playwright-latest-latest-playwright-efd ?
test-optimization-playwright-latest-latest-playwright-impacted-tests ?
test-optimization-playwright-latest-latest-playwright-reporting 42.90% <0.00%> (+0.08%) ⬆️
test-optimization-playwright-latest-latest-playwright-test-management 44.48% <0.00%> (+0.07%) ⬆️
test-optimization-playwright-latest-oldest-playwright-active-test-span ?
test-optimization-playwright-latest-oldest-playwright-atr ?
test-optimization-playwright-latest-oldest-playwright-efd ?
test-optimization-playwright-latest-oldest-playwright-final-status ?
test-optimization-playwright-latest-oldest-playwright-impacted-tests ?
test-optimization-playwright-latest-oldest-playwright-reporting ?
test-optimization-playwright-latest-oldest-playwright-test-management ?
test-optimization-playwright-oldest-latest-playwright-active-test-span ?
test-optimization-playwright-oldest-latest-playwright-atr ?
test-optimization-playwright-oldest-latest-playwright-efd 43.36% <0.00%> (+0.08%) ⬆️
test-optimization-playwright-oldest-latest-playwright-impacted-tests ?
test-optimization-playwright-oldest-latest-playwright-reporting 42.95% <0.00%> (+0.08%) ⬆️
test-optimization-playwright-oldest-latest-playwright-test-management 44.59% <0.00%> (+0.08%) ⬆️
test-optimization-playwright-oldest-oldest-playwright-active-test-span ?
test-optimization-playwright-oldest-oldest-playwright-atr ?
test-optimization-playwright-oldest-oldest-playwright-efd ?
test-optimization-playwright-oldest-oldest-playwright-final-status ?
test-optimization-playwright-oldest-oldest-playwright-impacted-tests ?
test-optimization-playwright-oldest-oldest-playwright-reporting ?
test-optimization-playwright-oldest-oldest-playwright-test-management 44.54% <0.00%> (+0.10%) ⬆️
test-optimization-selenium-latest ?
test-optimization-selenium-oldest ?
test-optimization-testopt-active 48.28% <0.00%> (+0.12%) ⬆️
test-optimization-testopt-latest 48.28% <0.00%> (+0.12%) ⬆️
test-optimization-testopt-maintenance 48.27% <0.00%> (+0.13%) ⬆️
test-optimization-testopt-oldest 49.37% <0.00%> (+0.10%) ⬆️
test-optimization-vitest-latest 48.40% <0.00%> (-2.32%) ⬇️
test-optimization-vitest-oldest 47.41% <0.00%> (-0.33%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@pr-commenter

pr-commenter Bot commented Feb 22, 2026

Copy link
Copy Markdown

Benchmarks

Benchmark execution time: 2026-06-18 14:01:32

Comparing candidate commit c559ab5 in PR branch editorconfig-checker with baseline commit c882011 in branch master.

📊 Benchmarking dashboard

Found 0 performance improvements and 0 performance regressions! Performance is the same for 1953 metrics, 12 unstable metrics.

Explanation

This is an A/B test comparing a candidate commit's performance against that of a baseline commit. Performance changes are noted in the tables below as:

  • 🟩 = significantly better candidate vs. baseline
  • 🟥 = significantly worse candidate vs. baseline

We compute a confidence interval (CI) over the relative difference of means between metrics from the candidate and baseline commits, considering the baseline as the reference.

If the CI is entirely outside the configured SIGNIFICANT_IMPACT_THRESHOLD (or the deprecated UNCONFIDENCE_THRESHOLD), the change is considered significant.

Feel free to reach out to #apm-benchmarking-platform on Slack if you have any questions.

More details about the CI and significant changes

You can imagine this CI as a range of values that is likely to contain the true difference of means between the candidate and baseline commits.

CIs of the difference of means are often centered around 0%, because often changes are not that big:

---------------------------------(------|---^--------)-------------------------------->
                              -0.6%    0%  0.3%     +1.2%
                                 |          |        |
         lower bound of the CI --'          |        |
sample mean (center of the CI) -------------'        |
         upper bound of the CI ----------------------'

As described above, a change is considered significant if the CI is entirely outside the configured SIGNIFICANT_IMPACT_THRESHOLD (or the deprecated UNCONFIDENCE_THRESHOLD).

For instance, for an execution time metric, this confidence interval indicates a significantly worse performance:

----------------------------------------|---------|---(---------^---------)---------->
                                       0%        1%  1.3%      2.2%      3.1%
                                                  |   |         |         |
       significant impact threshold --------------'   |         |         |
                      lower bound of CI --------------'         |         |
       sample mean (center of the CI) --------------------------'         |
                      upper bound of CI ----------------------------------'

Unstable benchmarks

These benchmarks have a confidence interval too wide to call a change; treat them as noise rather than signal.

scenario:appsec-appsec-enabled-24

  • unstable execution_time [-151.608ms; +154.671ms] or [-5.807%; +5.924%]

scenario:appsec-appsec-enabled-26

  • unstable execution_time [-172549.985µs; +173223.085µs] or [-6.969%; +6.997%]

scenario:appsec-control-20

  • unstable execution_time [-133.951ms; +127.379ms] or [-7.771%; +7.390%]

scenario:appsec-control-24

  • unstable execution_time [-91.965ms; +95.458ms] or [-7.685%; +7.977%]

scenario:appsec-control-26

  • unstable execution_time [-95533.872µs; +94517.872µs] or [-8.088%; +8.002%]

scenario:dogstatsd-with-tags-20

  • unstable cpu_user_time [-155.630ms; +533.580ms] or [-3.298%; +11.309%]
  • unstable execution_time [-157.380ms; +529.455ms] or [-3.281%; +11.039%]

scenario:plugin-graphql-long-with-depth-and-collapse-off-24

  • unstable cpu_user_time [-187.214ms; +423.456ms] or [-4.164%; +9.419%]
  • unstable execution_time [-199.432ms; +447.594ms] or [-4.169%; +9.357%]
  • unstable max_rss_usage [-23.060MB; +51.192MB] or [-4.244%; +9.421%]

scenario:spans-finish-later-26

  • unstable max_rss_usage [-3.980MB; +26.002MB] or [-2.334%; +15.250%]

scenario:test-optimization-large-suite-20

  • unstable max_rss_usage [-4.382MB; +7.755MB] or [-5.405%; +9.567%]

tlhunter
tlhunter previously approved these changes Feb 25, 2026
@tlhunter

Copy link
Copy Markdown
Member

Based on all the failure I presume there's no --fix flag?

@rochdev

rochdev commented Feb 26, 2026

Copy link
Copy Markdown
Member Author

Based on all the failure I presume there's no --fix flag?

There isn't unfortunately, I'll have to take some time to fix those.

@rochdev
rochdev force-pushed the editorconfig-checker branch from b031959 to 12fed34 Compare February 26, 2026 19:09
@datadog-datadog-prod-us1-2

datadog-datadog-prod-us1-2 Bot commented Feb 26, 2026

Copy link
Copy Markdown

Tests

🎉 All green!

🧪 All tests passed
❄️ No new flaky tests detected

This comment will be updated automatically if new data arrives.
🔗 Commit SHA: c559ab5 | Docs | Datadog PR Page | Give us feedback!

@rochdev
rochdev force-pushed the editorconfig-checker branch 3 times, most recently from 5b24355 to 49bb962 Compare March 5, 2026 01:31

@BridgeAR BridgeAR left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I like this. @rochdev do you mind finishing this? :)

@rochdev

rochdev commented May 1, 2026

Copy link
Copy Markdown
Member Author

I like this. @rochdev do you mind finishing this? :)

There was a weird edge case with LLMObs, will have to look into that before merging, but otherwise it should be mostly complete!

@rochdev
rochdev force-pushed the editorconfig-checker branch from 49bb962 to 12862ed Compare May 2, 2026 03:31
@BridgeAR

Copy link
Copy Markdown
Member

This needs a rebase 😅 @rochdev

@BridgeAR
BridgeAR force-pushed the editorconfig-checker branch from 12862ed to fa22db1 Compare June 6, 2026 16:54
@BridgeAR
BridgeAR marked this pull request as ready for review June 8, 2026 07:48
@BridgeAR
BridgeAR requested review from a team as code owners June 8, 2026 07:48
@BridgeAR
BridgeAR requested review from BridgeAR and removed request for a team June 8, 2026 07:48
@BridgeAR
BridgeAR requested a review from wconti27 June 8, 2026 07:48
Comment thread packages/dd-trace/test/appsec/bad-formatted-rules.json
assert.deepStrictEqual(formatOutputMessages(response, true), [{ role: 'assistant', content: 'Hello, world!' }])
})
})
})

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am unsure in what way this landed here. I will check if that came in accidentially through a rebase

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We changed a indentation of some code without a test. That is covering that line.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 1954120ca2

ℹ️ About Codex in GitHub

Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

Comment thread .github/workflows/project.yml Outdated
Comment thread .editorconfig-checker.json Outdated
@BridgeAR
BridgeAR marked this pull request as draft June 8, 2026 07:54
@BridgeAR
BridgeAR force-pushed the editorconfig-checker branch from 1954120 to 3129fb4 Compare June 8, 2026 08:26
@BridgeAR
BridgeAR marked this pull request as ready for review June 8, 2026 08:46
BridgeAR
BridgeAR previously approved these changes Jun 8, 2026

@BridgeAR BridgeAR left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I like this!

rochdev and others added 6 commits June 18, 2026 15:46
This adds an editorconfig check to CI plus an `.editorconfig-checker.json`
ignore list for binary fixtures and recorded cassettes. The check runs
through the `mstruebing/editorconfig-checker` Docker image rather than the
npm binary so CI does not fetch the checker binary over the network on every
run.
Bring existing files into compliance with the editorconfig rules enforced by
the new check. Whitespace only: final newlines, LF line endings, trailing
whitespace, tabs converted to spaces, and indentation aligned to a multiple
of two.
The editorconfig normalization appended a final newline to the streamtest
fixture, which response_blocking.spec.js streams verbatim and asserts equals
'writefileend'. The extra byte made the streamed body 'writefile\nend' and
failed the no-attack case. Restore the fixture and carve it out of the
final-newline rule, matching the existing fine-tune.jsonl exclusion.
bad-formatted-rules.json is an intentional test fixture containing
trailing whitespace to trigger bad-format parsing. The normalize commit
removed it; exclude the file from editorconfig-checker instead and
restore the original content.

1. Restore bad-formatted-rules.json and add it to the exclude list.
2. Remove EndOfLine, InsertFinalNewline, and TrimTrailingWhitespace from
   the Disable section — listing them as false is redundant with the
   default behavior when IgnoreDefaults is false.
3. Replace the untagged mstruebing/editorconfig-checker docker image in
   the CI job and npm script with the locked npm devDependency so the
   checker version is pinned by yarn.lock.
The Disable section was entirely a no-op — every entry was false, which
is the default when IgnoreDefaults is false. Remove it so the config
matches observable behavior.

Exclude patterns were unanchored regexes, causing "vendor" to silence
.github/vendored-dependencies.csv, which has CRLF line endings.
Anchor all patterns, fix the CRLF in that file, and add .nyc_output/
and coverage/ to guard against local false positives from coverage
artifacts.
The `extractMetrics` token fallback (derive the total from prompt +
candidate counts when `totalTokenCount` is absent) and the streaming
special-case branch in `formatOutputMessages` (functionCall /
executableCode / codeExecutionResult parts routed through non-streaming
formatting) had no direct coverage. Add a unit spec pinning both
branches and their token-count siblings.
@BridgeAR
BridgeAR force-pushed the editorconfig-checker branch from 43df1ad to c559ab5 Compare June 18, 2026 13:47
@BridgeAR
BridgeAR requested a review from a team as a code owner June 18, 2026 13:47
@BridgeAR
BridgeAR merged commit 1e50807 into master Jun 19, 2026
1794 of 2196 checks passed
@BridgeAR
BridgeAR deleted the editorconfig-checker branch June 19, 2026 14:34
dd-octo-sts Bot pushed a commit that referenced this pull request Jun 22, 2026
* ci: add editorconfig validation to linting

This adds an editorconfig check to CI plus an `.editorconfig-checker.json`
ignore list for binary fixtures and recorded cassettes. The check runs
through the `mstruebing/editorconfig-checker` Docker image rather than the
npm binary so CI does not fetch the checker binary over the network on every
run.

* style: normalize files to satisfy editorconfig

Bring existing files into compliance with the editorconfig rules enforced by
the new check. Whitespace only: final newlines, LF line endings, trailing
whitespace, tabs converted to spaces, and indentation aligned to a multiple
of two.

* fix(test): keep streamtest fixture free of a trailing newline

The editorconfig normalization appended a final newline to the streamtest
fixture, which response_blocking.spec.js streams verbatim and asserts equals
'writefileend'. The extra byte made the streamed body 'writefile\nend' and
failed the no-attack case. Restore the fixture and carve it out of the
final-newline rule, matching the existing fine-tune.jsonl exclusion.

* test(llmobs): cover google-genai metrics and streaming output formatting

The `extractMetrics` token fallback (derive the total from prompt +
candidate counts when `totalTokenCount` is absent) and the streaming
special-case branch in `formatOutputMessages` (functionCall /
executableCode / codeExecutionResult parts routed through non-streaming
formatting) had no direct coverage. Add a unit spec pinning both
branches and their token-count siblings.

---------

Co-authored-by: Ruben Bridgewater <ruben.bridgewater@datadoghq.com>
This was referenced Jun 22, 2026
pabloerhard pushed a commit that referenced this pull request Jun 26, 2026
* ci: add editorconfig validation to linting

This adds an editorconfig check to CI plus an `.editorconfig-checker.json`
ignore list for binary fixtures and recorded cassettes. The check runs
through the `mstruebing/editorconfig-checker` Docker image rather than the
npm binary so CI does not fetch the checker binary over the network on every
run.

* style: normalize files to satisfy editorconfig

Bring existing files into compliance with the editorconfig rules enforced by
the new check. Whitespace only: final newlines, LF line endings, trailing
whitespace, tabs converted to spaces, and indentation aligned to a multiple
of two.

* fix(test): keep streamtest fixture free of a trailing newline

The editorconfig normalization appended a final newline to the streamtest
fixture, which response_blocking.spec.js streams verbatim and asserts equals
'writefileend'. The extra byte made the streamed body 'writefile\nend' and
failed the no-attack case. Restore the fixture and carve it out of the
final-newline rule, matching the existing fine-tune.jsonl exclusion.

* test(llmobs): cover google-genai metrics and streaming output formatting

The `extractMetrics` token fallback (derive the total from prompt +
candidate counts when `totalTokenCount` is absent) and the streaming
special-case branch in `formatOutputMessages` (functionCall /
executableCode / codeExecutionResult parts routed through non-streaming
formatting) had no direct coverage. Add a unit spec pinning both
branches and their token-count siblings.

---------

Co-authored-by: Ruben Bridgewater <ruben.bridgewater@datadoghq.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants