Skip to content

vb#1647

Open
jozrftamson wants to merge 7 commits intoa2aproject:mainfrom
jozrftamson:main
Open

vb#1647
jozrftamson wants to merge 7 commits intoa2aproject:mainfrom
jozrftamson:main

Conversation

@jozrftamson
Copy link

No description provided.

@jozrftamson jozrftamson requested a review from a team as a code owner March 17, 2026 07:44
@gemini-code-assist
Copy link
Contributor

Summary of Changes

Hello, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request enhances the project's development infrastructure by introducing performance benchmarking capabilities and improving community engagement documentation. It integrates new tools for measuring JSON schema performance and provides clear guidelines for contributions, aiming to foster a more robust and collaborative development environment.

Highlights

  • Performance Benchmarking Integration: Integrated CodSpeed and Vitest to enable performance benchmarking for JSON schema operations, adding a new benchmark file and necessary dependencies.
  • Community Contribution Guidelines: Expanded the community.md documentation with a dedicated section detailing various ways for users to get involved and contribute to the project.
  • JSON Schema Enhancements: Introduced numerous new JSON schema definitions, primarily related to testing utilities (e.g., matchers, task states) and fundamental data structures (e.g., ArrayBuffer, AbortSignal), and updated an existing type reference.
  • README Update: Added a CodSpeed badge to the README.md to showcase performance metrics.
Changelog
  • README.md
    • Added a CodSpeed performance badge.
  • docs/community.md
    • Added a new section outlining ways for the community to get involved and contribute.
  • specification/json/a2a.json
    • Added numerous new schema definitions for testing utilities and data types, including AbortSignal, ArrayBuffer, AsymmetricMatchersContaining, B, Chai.AssertStatic, ExpectStatic, FailureScreenshotArtifactAttachment, J, L, Location, P, ParsedStack, Partial<Record<keyofb,N>>, Promise, Q, R, Record<string,I>, RegExp, RunMode, S, SharedArrayBuffer, T, TaskState, TestError, U, VisualRegressionArtifactAttachment, X, Z, _, a4, a, a_1, c, e, and m.
    • Updated a reference to TaskState.
    • types/benches/schema-generation.bench.ts
      • Added a new benchmark file for measuring JSON schema operation performance.
    • types/package-lock.json
      • Updated development dependencies to include Vitest and CodSpeed, along with their transitive dependencies.
    • types/package.json
      • Added Vitest and CodSpeed as development dependencies.
      • Added a new bench script for running performance benchmarks.
    • types/vitest.config.mts
      • Added a new Vitest configuration file to enable the CodSpeed plugin.
    • Ignored Files
      • Ignored by pattern: .github/workflows/** (1)
        • .github/workflows/codspeed.yml
      Activity
      • The pull request was created by jozrftamson with the title "vb" and an empty description, suggesting it might be a work-in-progress or a quick commit.
      Using Gemini Code Assist

      The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

      Invoking Gemini

      You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

      Feature Command Description
      Code Review /gemini review Performs a code review for the current pull request in its current state.
      Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
      Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
      Help /gemini help Displays a list of available commands.

      Customization

      To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

      Limitations & Feedback

      Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for GitHub and other Google products, sign up here.

      You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

      Footnotes

      1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

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

Code Review

This pull request introduces several documentation updates and adds benchmarking capabilities. The main changes are in the specification/json/a2a.json schema, where numerous new type definitions have been added. While the functionality seems to be for testing and benchmarking, the naming of these new definitions is a major concern. Many definitions use single-letter names (e.g., 'B', 'L', 'S'), or names that look like TypeScript generics (e.g., 'a', 'Partial<Record<keyofb,N>>'), which severely hurts the readability and maintainability of the schema. I've added specific comments with suggestions for renaming these definitions to be more descriptive. Additionally, there is a duplicated definition ('a' and 'a_1') that should be consolidated.

],
"type": "string"
},
"U": {
Copy link
Contributor

Choose a reason for hiding this comment

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

critical

The definition name "U" is not descriptive. Based on its properties (content, time, type), it appears to represent a log entry. Please rename it to LogEntry.

        "LogEntry": {

],
"type": "object"
},
"T": {
Copy link
Contributor

Choose a reason for hiding this comment

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

critical

The definition name "T" is not descriptive. It's used as the type for artifacts in the Test definition (a<object>). A better name would be TestArtifact.

        "TestArtifact": {

}
]
},
"m": {
Copy link
Contributor

Choose a reason for hiding this comment

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

critical

The definition name "m" is not descriptive. Based on its type property ("const": "internal:failureScreenshot"), a better name would be FailureScreenshotArtifact.

        "FailureScreenshotArtifact": {

],
"type": "object"
},
"e": {
Copy link
Contributor

Choose a reason for hiding this comment

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

critical

The definition name "e" is not descriptive. It represents an item in a suite's tasks array. A better name would be TaskItem or SuiteEntry.

        "TaskItem": {

],
"type": "object"
},
"c": {
Copy link
Contributor

Choose a reason for hiding this comment

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

critical

The definition name "c" is not descriptive. Based on its properties like filepath and type: "suite", a better name would be FileSuite.

        "FileSuite": {

Comment on lines +1141 to +1144
"required": [
"originalPath",
"path"
],
Copy link
Contributor

Choose a reason for hiding this comment

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

low

The contentType property is defined for FailureScreenshotArtifactAttachment but is not listed in the required array. It seems like this should be a required field to properly interpret the attachment. Please consider adding it to the required array.

Suggested change
"required": [
"originalPath",
"path"
],
"required": [
"contentType",
"originalPath",
"path"
],

Comment on lines +686 to +687
"median": {
"type": "integer"
Copy link
Contributor

Choose a reason for hiding this comment

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

low

The median property is missing a description. For consistency and clarity, please add a description explaining what this property represents, similar to other properties in this definition.

                "median": {
                    "description": "The median value of the samples.",
                    "type": "integer"
                },

Comment on lines +3456 to +3460
"enum": [
"actual",
"diff",
"reference"
],
Copy link
Contributor

Choose a reason for hiding this comment

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

low

The enum values for the name property should be in SCREAMING_SNAKE_CASE to follow the project's convention.

Suggested change
"enum": [
"actual",
"diff",
"reference"
],
"enum": [
"ACTUAL",
"DIFF",
"REFERENCE"
],
References
  1. Enum values in the A2A protocol should be in SCREAMING_SNAKE_CASE to comply with the ProtoJSON specification.

Comment on lines +3362 to +3365
"enum": [
"stderr",
"stdout"
],
Copy link
Contributor

Choose a reason for hiding this comment

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

low

The enum values for the type property should be in SCREAMING_SNAKE_CASE to follow the project's convention.

Suggested change
"enum": [
"stderr",
"stdout"
],
"enum": [
"STDERR",
"STDOUT"
],
References
  1. Enum values in the A2A protocol should be in SCREAMING_SNAKE_CASE to comply with the ProtoJSON specification.

Comment on lines +3184 to +3192
"enum": [
"fail",
"only",
"pass",
"queued",
"run",
"skip",
"todo"
],
Copy link
Contributor

Choose a reason for hiding this comment

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

low

The enum values in TaskState should be in SCREAMING_SNAKE_CASE to follow the project's convention.

Suggested change
"enum": [
"fail",
"only",
"pass",
"queued",
"run",
"skip",
"todo"
],
"enum": [
"FAIL",
"ONLY",
"PASS",
"QUEUED",
"RUN",
"SKIP",
"TODO"
],
References
  1. Enum values in the A2A protocol should be in SCREAMING_SNAKE_CASE to comply with the ProtoJSON specification.

@zeroasterisk
Copy link
Collaborator

Hey @jozrftamson this PR is a bit confusing to me.

Can you clarify the intent and perhaps reduce the scope?

What exactly are you trying to change and why?
(recommendation, only change one thing in a PR, and clearly communicate why it's better)

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.

4 participants