Update to EasyGerber
Snapshot Nov 3, 2026 · 06:11 UTC · version 0.3.8
Package or technical metadata updated
Package or technical metadata updated
Observed in package metadata. These changes alone do not establish a new customer-facing feature.
Up to 10 plugins free · no card required.
All fields and original values.
These are saved file metadata. Open a changed file to read its text edits.
Package file
Nov 3, 2026 · 00:12 UTC
47a1cf167b4eac61864165d4a0bd999e959f8cc02e26fc95a472bdaa5a9c0134
Nov 3, 2026 · 06:11 UTC
70bca2e553895b549512acc2b438465409dc8899edd0cf12e662f429792271a4
Package file
Nov 3, 2026 · 00:12 UTC
40023
Nov 3, 2026 · 06:11 UTC
40325
Package file
Nov 3, 2026 · 00:12 UTC
d32e4b776c1ceb716810935381e4752d880ad7f5b388dbc97be03221fe189483
Nov 3, 2026 · 06:11 UTC
6b67356fce5efc7296fdd16aabb4ecfc6ea2f062c2dbb85e484901bdd65d9a2d
Package file
Nov 3, 2026 · 00:12 UTC
572
Nov 3, 2026 · 06:11 UTC
575
Compare saved observations
Download comparison JSONChanged files
Choose a file to see its text changes. Binary or large files show metadata only.
mcp.json →
plugin.json
− removed · + added
--- before +++ after @@ -1,7 +1,7 @@ { "$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json", "name": "easygerber", - "version": "0.3.7", + "version": "0.3.8", "description": "AI PCB design, layout, and routing", "author": { "name": "EasyGerber", @@ -30,7 +30,7 @@ "interface": { "displayName": "EasyGerber", "shortDescription": "AI PCB design and layout", - "longDescription": "Design circuit boards with AI, from your first idea to the files your manufacturer needs. Describe what you want to build in everyday language, or start with the pin assignments in your firmware.\n\nChoose from over one million electronic components in EasyGerber\u2019s catalog, including LEDs, sensors, connectors, and microcontrollers. Build with real catalog parts, their footprints, and available 3D models\u2014from a simple LED circuit to a custom electronics project.\n\nCreate and edit schematics, generate PCB layouts with automatic component placement and routing, and refine your design through conversation. Adjust board settings, define part clearances and keepout regions, and specify current requirements for individual pins. Explore copper layers, inspect your board in interactive 3D, and check for blocking layout issues before manufacturing export.\n\nDownload Gerber files, drill files, a bill of materials (BOM), component placement files, and an editable EasyGerber file to continue working on your design. Editable backups can be exported before the layout is complete or up to date, without generating or checking a layout just to export it.\n\nStart with one guest board without signing up. Sign in or create an account in its private viewer to save the board and open it automatically. To continue account work through your agent, authorize its connection; browser sign-in alone does not connect the agent. When you connect through the agent to keep or continue working on the guest board, the agent saves it to your account after consent. If you connect through client settings for that purpose, resume the task so the agent can finish saving it. Signing in solely to delete an account board or submit feedback does not authorize claiming a guest board.\n\nAsk your agent to send a bug report, feature request, or general feedback privately to EasyGerber. Feedback can be anonymous without signing up or starting a board. The agent sends only the message you ask or agree to share and returns a submission receipt, without promising a response or roadmap commitment.", + "longDescription": "Design circuit boards with AI, from your first idea to the files your manufacturer needs. Describe what you want to build in everyday language, or start with the pin assignments in your firmware.\n\nChoose from over one million electronic components in EasyGerber\u2019s catalog, including LEDs, sensors, connectors, and microcontrollers. Build with real catalog parts, their footprints, and available 3D models\u2014from a simple LED circuit to a custom electronics project.\n\nCreate and edit schematics, generate PCB layouts with automatic component placement and routing, and refine your design through conversation. Adjust board settings, define part clearances and keepout regions, and specify current requirements for individual pins. Explore copper layers, inspect your board in interactive 3D, and check for blocking layout issues before manufacturing export.\n\nDownload Gerber files, drill files, a bill of materials (BOM), component placement files, and an editable EasyGerber file to continue working on your design. Editable backups can be exported before the layout is complete or up to date, without generating or checking a layout just to export it.\n\nCreate a board without signing up and continue working through ordinary requests. The agent keeps one private board reference for edits, layout, previews, and exports. When you connect an account to keep working on that board, the service saves it into your account while the same reference continues to work with your authorization. Browser sign-in and agent authorization are separate. Ordinary sign-in does not request deletion permission; deletion requires a separate explicit action and consent.\n\nAsk your agent to send a bug report, feature request, or general feedback privately to EasyGerber. Feedback can be anonymous without signing up or starting a board. The agent sends only the message you ask or agree to share and returns a submission receipt, without promising a response or roadmap commitment.", "developerName": "EasyGerber", "category": "Developer Tools", "capabilities": [ @@ -61,22 +61,22 @@ "test_cases": { "positive": [ { - "description": "P1 \u2014 Guest access and published component selection. Start without an account and verify a connector and its pins without creating a board.", - "prompt": "Use EasyGerber as a guest without signing in. Find a published two-pin connector for a passive signal-and-ground pass-through board and confirm its actual catalog pins before designing it.", - "tools_triggered": "start_guest_session, search_parts, get_part", - "expected_behavior": "The agent discovers the guest tools without account authorization and retains one guest session with limits of one board and no scheduled expiration. It keeps the token in tool context and uses the returned private viewer link only for the user. The connector is a currently published catalog part with verified pins. Missing electrical requirements are clarified. No board is created." + "description": "P1 \u2014 Public catalog access and published component selection. Start without an account and verify a connector and its pins without creating a trial or board.", + "prompt": "Find a published two-pin connector for a passive signal-and-ground pass-through board and confirm its actual catalog pins before designing it.", + "tools_triggered": "search_parts, get_part", + "expected_behavior": "The agent discovers and searches the public catalog without account authorization or a guest token. It does not call start_guest_session or create a board; browsing must not start a trial. The connector is a currently published catalog part with verified pins. Missing electrical requirements are clarified." }, { - "description": "P2 \u2014 Guest schematic and controlled edit. Create one board using the connector verified in P1, then verify an identical update retry.", - "prompt": "Create the guest pass-through board with two instances of the verified connector. Connect signal to signal and ground to ground using the app's supported defaults. Rename it to Guest Review Pass-through v2, repeat that exact update once with the same request ID and expected revision, then verify the saved result.", - "tools_triggered": "get_part if component details need refreshing, create_board, get_board, update_board, update_board with identical arguments, get_board", - "expected_behavior": "The agent reuses the original guest session and supplies no organization ID. The saved schematic uses actual catalog IDs and pins, preserves canonical footprints and available models, and inherits hidden constraints from the service. The rename changes only the requested name. Its identical retry returns the original receipt and revision, without a second mutation. A competing edit is handled by re-reading the board. A saved schematic is not described as a completed PCB." + "description": "P2 \u2014 One private board reference across creation and later edits. Create the board from P1, then continue in a separate conversation turn; separately verify identical request replay.", + "prompt": "Create the pass-through board with two instances of the verified connector. Connect signal to signal and ground to ground using the app defaults. In a later turn: Rename that board to Review Pass-through v2 and read it back. As a separate retry check, repeat an original creation or update request with its exact original reference, request ID, arguments, and revision.", + "tools_triggered": "create_board with boardRef, get_board with the same boardRef, update_board, get_board; identical original requests for retry checks", + "expected_behavior": "The agent generates one private boardRef and calls create_board directly without account probing, guest-start coaching, or a session-start call. Creation uses a valid connected account or establishes private access automatically. Subsequent turns use the same reference for reads and edits, without a separate guest token. The reference stays in private tool context. Identical retries return the original result without another board or mutation; changed arguments with the same request ID conflict. The schematic uses published catalog IDs and verified pins, preserves footprints and models, and inherits hidden constraints. The rename changes only the requested name. A competing edit requires a fresh read. A saved schematic is not described as a completed PCB." }, { "description": "P3 \u2014 Guest layout, preview, and blocking-issue validation. Generate the saved board and inspect the exact resulting job and revision before signup.", - "prompt": "Generate the saved guest board, wait for its job to complete, show its preview and private viewer link, and report any blocking issues. Keep using the same guest session.", + "prompt": "Generate that board, wait for completion, show its preview and private link, and report any blocking issues. In a later turn: Read the same board and report its current saved layout and job status.", "tools_triggered": "get_board, generate_layout, get_generation, get_board with preview, check_board_layout", - "expected_behavior": "Generation returns a job ID and the agent polls that exact job until it reaches a terminal state. Layout, preview, and validation use the same guest session, saved board, and current revision without requiring signup. The private viewer opens the saved design. Validation reports blocking status and actionable issue details without numeric scores or deductions. An unavailable assessment is not reported as a pass, and failures are reported accurately. Direct layout does not spend EasyGerber AI credits." + "expected_behavior": "The agent uses the same boardRef for generation and later status reads. It reads generation.id and polls that exact job, or reads get_generation with the reference alone if the ID is unavailable. get_board reports the current job and saved layout. Status checks never start another generation. Completed, failed, and cancelled are terminal and reported from actual results. Preview and validation use the current saved revision without signup. Validation reports actionable blocking issues without numeric scores; an unavailable assessment is not a pass. Direct layout does not spend EasyGerber AI credits." }, { "description": "P4 \u2014 Guest editable backup and manufacturing deliverables. Export the saved project before layout generation, then prepare manufacturing files, retaining required notices.", @@ -85,17 +85,17 @@ "expected_behavior": "The EasyGerber backup exports the valid saved project directly, without generation or a layout check, even with missing, incomplete, or stale layout. The later manufacturing export requires current PCB geometry and electrical requirements and a layout check. Each export uses its authoritative saved revision in the original guest session. Both private downloads open without signup and retain applicable license notices and change notes. The agent returns each complete stable private URL unchanged, including its fragment, and explains that it preserves the exported revision without automatic expiry. New exports require current board access; issued download links remain valid after board edits or deletion, guest claim, and guest cleanup. Only explicit download-link revocation or deletion of the exported file ends access. No customer-facing countdown or renewal step is needed. No numeric PCB score is exposed. No purchasing, public sharing, or deletion occurs." }, { - "description": "P5 \u2014 Optional account authorization automatically saves the guest board. Connect the reviewer\u2019s account without an extra save request, then inspect permitted account access.", + "description": "P5 \u2014 Ordinary account authorization continues the same private board. Sign in without deletion consent and continue with the original reference.", "prompt": "Connect my EasyGerber account so I can continue working, then list my accessible organizations without moving this board to an organization.", - "tools_triggered": "claim_guest_board with the original guestToken, retry claim_guest_board after account authorization, get_board, get_profile, list_organizations", - "expected_behavior": "The agent uses claim_guest_board with the original guest token to initiate normal account OAuth, then retries the same claim automatically after consent without asking for a separate save confirmation or substituting get_profile. It finishes any active guest job before switching to OAuth; guest_board_busy requires waiting and automatically retrying without cancellation or account downgrade. Failed or interrupted claims retain the original token for safe retry. Authorized boards:write access transfers the full saved design into personal ownership and returns a new board ID. The agent reads that account board and its current revision before further writes, omitting guest tokens from ordinary account calls. The old guest token and viewer session no longer grant access, while previously issued export links still return their exact original files. Only accessible organizations are returned; the board is not moved to an organization and earlier guest activity is retained." + "tools_triggered": "normal account authorization, get_board with the original boardRef, get_profile when identity is needed, list_organizations", + "expected_behavior": "Ordinary OAuth requests only board workflow and offline access permissions, without boards:delete. After consent, get_board with the same boardRef saves the existing private board into the account under authorized write access; no separate claim tool or save question is needed. Finish an active layout first and wait on busy responses without cancelling it or changing identity. The reference remains stable while the returned account board ID and revision are authoritative. Signed-out reuse cannot access the claimed account board; a different account cannot take it over. The saved layout is preserved without copying old generation history; a missing job after the transition does not require regeneration of a current layout. Generation polling and stopping do not themselves claim the board. Existing export links remain exact snapshots. The agent lists only accessible organizations and does not move the board into one." } ], "negative": [ { - "description": "N1 \u2014 Guest and account access boundaries must hold. Run guest second-board and foreign-access checks before P5. After P5, check revoked guest access in a separate signed-out connection and browser. Use the private fixture IDs supplied separately for review.", - "prompt": "Before claiming the board, use the existing guest session to try creating a second board and reading the private fixture board. After claim, check the old guest token and viewer session in a separate signed-out context. Also verify that my signed-in account cannot read a private fixture it does not own.", - "expected_behavior": "The second board and foreign reads are denied without revealing private metadata or signed downloads. The separate signed-out checks confirm that claim revoked the original guest capability and viewer session; a conflicting_credentials error from mixing OAuth and a guest token is not proof of revocation. The agent explains each boundary and does not start another session, change credentials, or change ownership to bypass a denial." + "description": "N1 \u2014 Reference isolation and ownership. Use separately supplied private fixture references for foreign-access checks; verify a consumed reference cannot create replacement work.", + "prompt": "Try to reuse this board reference for a different creation request and read the private fixture with only its public board UUID. After saving the board to my account, check its original reference from a separate signed-out connection. Also verify my account cannot access a fixture owned only by another account.", + "expected_behavior": "Changed creation input with a consumed reference conflicts without another board. A UUID or request ID alone never grants private access. Board-scoped catalog calls preserve authorization and strict Part Lists. After account transition, signed-out access is denied while the authorized owning account can continue with the same reference. References for account boards never grant another account access. Invalid, revoked, or unavailable references do not fall back to anonymous creation. The agent does not rotate references, start another session, alter permissions, or claim other work to bypass a denial." }, { "description": "N2 \u2014 Invalid components and hidden constraints must not be accepted. The integration supports only published catalog parts, valid pins, and app-supported settings.", @@ -111,7 +111,7 @@ } }, "publication": { - "release_notes": "Version 0.3.6 aligns editable EasyGerber backups with the deployed service: valid saved projects export directly even with missing, incomplete, or stale layouts, without generation or a layout check. Manufacturing exports retain current geometry and applied electrical requirements. Issued private download links preserve their exact snapshot after source-board edits, deletion, guest claim, and cleanup. Installer runtime, connection URLs, OAuth scopes, deletion consent, and feedback behavior are unchanged. Package checks do not establish client workflow acceptance or directory approval." + "release_notes": "One private boardRef now covers creation and continued board work. Valid account access creates account-owned work; otherwise private access is established automatically. Exact original creation retries preserve one board, and status reads expose the current generation without regeneration. Existing credential forms remain an intentional compatibility boundary. OpenAI defaultScopes explicitly select ordinary workflow permissions and offline access; deletion still requires separate consent. Package checks do not establish hosted deployment, separate-turn client acceptance, or directory approval." }, "apps": "./.app.json" }
Full technical diff · 10 changed fields
changed /files/README.md/sha256
"47a1cf167b4eac61864165d4a0bd999e959f8cc02e26fc95a472bdaa5a9c0134"
"70bca2e553895b549512acc2b438465409dc8899edd0cf12e662f429792271a4"
changed /files/README.md/size
40023
40325
changed /files/mcp.json/sha256
"d32e4b776c1ceb716810935381e4752d880ad7f5b388dbc97be03221fe189483"
"6b67356fce5efc7296fdd16aabb4ecfc6ea2f062c2dbb85e484901bdd65d9a2d"
changed /files/mcp.json/size
572
575
changed /files/plugin.json/sha256
"0eef00a745815122f4a97a73200b4e82dbc870368db6b5df8652653d9a9f72bd"
"66c9a2a0e164396ef8df1763cce0fe6f8dd46d7b96f2e0554c3642c82600c57a"
changed /files/plugin.json/size
15295
15582
changed /files/skills~1easygerber~1SKILL.md/sha256
"286cc0e8895945ba489ee2f8d08ed37dc81161328184986b43de3bf39fd44cdd"
"3f07312b3b513e320a15da3191d501dee8587a81200cee5dd955a637fbb915e4"
changed /files/skills~1easygerber~1SKILL.md/size
8151
6686
changed /files/skills~1easygerber~1references~1workflow.md/sha256
"5a7e81acdaeea5e5637884cedbbf100fdc45c6e7337184b73462fb0ad9ed0f29"
"ace285e12f863b7c47c0af1c036846e3861881771725759a4de5586140e913ec"
changed /files/skills~1easygerber~1references~1workflow.md/size
22437
21532
Full snapshot data
{
"files": {
".app.json": {
"sha256": "2e93a7759a5028b441e5e82e2e4dc461fbcf8e39f4b3ef6b589080abf0483ee3",
"size": 102
},
"LICENSE": {
"sha256": "5203e343b9e8e6bb0711f8bd81a350ae5512eef3678d078aa1a22b2dfd27f968",
"size": 1219
},
"README.md": {
"sha256": "70bca2e553895b549512acc2b438465409dc8899edd0cf12e662f429792271a4",
"size": 40325
},
"assets/icon.svg": {
"sha256": "a338ee5a78deb12eb9656fb4ea56bcdfa0b8879ca6cdc607f9fd7f52c756ea15",
"size": 325
},
"assets/logo.svg": {
"sha256": "7f6de0c5edef7e8f7ac76ab818bd0153bbfe50108f2382ea39f165a8c907e77e",
"size": 327
},
"mcp.json": {
"sha256": "6b67356fce5efc7296fdd16aabb4ecfc6ea2f062c2dbb85e484901bdd65d9a2d",
"size": 575
},
"plugin.json": {
"sha256": "66c9a2a0e164396ef8df1763cce0fe6f8dd46d7b96f2e0554c3642c82600c57a",
"size": 15582
},
"skills/easygerber/SKILL.md": {
"sha256": "3f07312b3b513e320a15da3191d501dee8587a81200cee5dd955a637fbb915e4",
"size": 6686
},
"skills/easygerber/references/workflow.md": {
"sha256": "ace285e12f863b7c47c0af1c036846e3861881771725759a4de5586140e913ec",
"size": 21532
}
}
}SHA-256 of public snapshot: 9499fc4f22398299a11e3c5677340ae1323685b05f7af1b751b447b889d1c6a0