
We would like to introduce OSS contributions made by Classmethod Group employees during the July to September 2026 period.
This page has been translated by machine translation. View original
Hello. I'm Takeda from the Service Development Division.
This is our quarterly tradition—a roundup of OSS contributions from Classmethod Group employees. This time, we're introducing contributions reported internally from July to September 2026.
For reference, here is the previous installment:
OSS Contribution Summary
This quarter, we received 37 reports from 8 contributors. Since some reports combine an issue and a PR into a single entry, the count does not match the actual number of issues or PRs.
Reported outdated content in the Japanese version of TypeScript Deep Dive
This is a contribution from Kanatani.
The "Bind is Bad" page in the Japanese version of TypeScript Deep Dive explains that calling bind causes the original function to lose type safety. Since the introduction of strictBindCallApply in TypeScript 3.2, bind/call/apply are correctly typed when using strict: true. The discrepancy between the page's description and current behavior was reported in an issue.
Reported and fixed increased memory usage during metadata resolution in pnpm 11
This one is also from Kanatani.
In pnpm 11, resolving dependencies uses approximately 47% more memory than pnpm 10, causing processes to be OOM-killed on 3GB CI runners. Kanatani reported measurement results in an issue, submitted a fix PR, and it was merged. This is a welcome fix for anyone using pnpm in CI environments with constrained memory limits.
Reported false positive triggered by ASCII characters immediately after Japanese period in tirith
This is Kanatani's third contribution.
tirith is a terminal security tool that detects homograph URLs, shell execution via pipes, and similar threats before they run. When an ASCII word followed immediately after a Japanese period "。", the confusable string detection rule (confusable_text) was triggering incorrectly.
A fix PR was also submitted, but it was closed due to overlap with a fix from the maintainer's side. The fix was released in v0.4.0, and the maintainer left a thank-you comment on the issue.
Reported bugs and proposed features for NVIDIA NeMo Switchyard
From here, the contributions are from Morishige. This quarter, he submitted the most reports with 15 entries.
The main project is NVIDIA NeMo Switchyard. It is an LLM router that distributes requests across multiple models and providers while maintaining compatibility with the OpenAI and Anthropic APIs. 11 of the 15 reports relate to this project.
Two were merged. The first is a fix to accept both hyphens and underscores in v2 profile type names (#22). He first submitted a PR to address it in the documentation (#19), then switched to a code-level fix following a suggestion from the maintainer. The second is a fix for an issue where routing through a proxy caused JSON keys to be sorted alphabetically, changing the output of structured responses (#438, #439).
There are also cases where a maintainer applied a fix after a report. The issue of streaming response token usage being recorded as 0 in /v1/routing/stats (#18) was fixed by a maintainer PR separate from Morishige's fix PR (#21). A proposal to allow routing to continue without evaluation when the evaluation model fails or times out (fail open) (#850) was also implemented by a maintainer PR in October.
The following three items submitted in September were under review at the time of writing. These include a fix for an issue where images are passed directly to the evaluation model, causing evaluation to fail with text-only models (#598, #847), and a configuration for threshold steps when the evaluation result is unmatched (#845, #846). Another is a feature to evaluate the most recent user utterance as a task using the user_turn route (#848, #849).
In addition, he reported an issue where requests to DeepSeek V4 on Fireworks were being rejected with status code 400 (#121). Fix PRs (#122, #123) were closed without being merged. He also reported a bug where extra_body was being applied to a different target sharing the same model ID (#354), and asked a question about migration paths after the removal of legacy Python routing (#335).
How to use Switchyard is introduced in the following article by Morishige.
Fixed Qwen-MM-Plugins to work with OpenAI-compatible servers
Morishige submitted two fixes to Qwen-MM-Plugins. Qwen-MM-Plugins is a collection of plugins that add tools for handling images and audio to agents.
The first fix addresses an issue where audio-related tools cause errors when used with OpenAI-spec compliant servers such as vLLM. An option was added to send audio data as raw base64.
The second fix addresses an issue where the grounding tool is rejected by endpoints that strictly validate request bodies, such as Fireworks.
For both, an issue was filed before submitting the PR, and both were merged. The following article summarizes how the plugins work in practice.
Fixed bugs in Kumo-TS and pulsar
These are Morishige's remaining two contributions.
In the time series analysis package Kumo-TS, he reported an issue where, in DARR mode, if the same numeric sequence appears in the input and context in different orders, channels become misaligned and mixed up. The fix was merged. This is a subtle bug because it produces incorrect results without raising an error.
In pulsar, which streams large MoE models from SSD for inference, he fixed an issue where quantized models of Kimi K3 could not be loaded. The fix PR has been merged.
An article about running Kimi K3 on a single DGX Spark has also been published.
Reported CORS and HTTP/2 bugs in Floci's S3
This is a contribution to Floci by Watanabe. Floci is an open-source AWS emulator.
The first issue is a bug where CORS settings specified via the environment variable EXTRA_CORS_ALLOWED_ORIGINS are not applied to S3, causing preflight requests to return 403. This was fixed in v2.1.0.
The second issue is a bug where accessing via HTTP/2 causes virtual-hosted-style URLs to be interpreted as path-style, resulting in 404 errors. This was fixed in v1.6.0.
These are issues that tend to appear in configurations where the browser calls S3 directly.
Reported and fixed non-functioning VLA simulator in aws-samples
This is a contribution by Kanno to the simulation environment for robot foundation models in aws-samples. The repository was named sample-vla-simulator-on-aws at the time of contribution and was renamed to sample-rfm-simulation-on-aws in October.
Even after deploying following the README, the evaluations for GR00T and OpenVLA-OFT would not complete successfully. The cause was version incompatibilities in dependencies such as mujoco. The cause and fix were reported in an issue, and a fix PR was also merged.
The process of identifying the root cause is summarized in the following article.
Fixed environment variable BACKLOG_PROJECT not being read in Backlog CLI bee
This is a contribution by Sakai to bee, the CLI for Backlog.
The three commands document create, wiki create, and document view were not reading the environment variable BACKLOG_PROJECT as advertised in their help text. As a result, non-interactive execution would fail with an error about a missing project specification. An issue was filed, a fix was submitted, and a secondary bug where the environment variable was displayed twice in the help text was also fixed at the same time. This is a welcome fix for anyone using bee in non-interactive environments such as CI.
Reported and fixed issues in PDF-related libraries including pdfcpu and takumi
From here, the contributions are from Mochida. These are reports and fixes for libraries that handle PDFs.
Two issues were filed for pdfcpu, a PDF tool written in Go. The first is a proposal for a setting to preserve metadata such as creation date without overwriting it on write, which was implemented as PreserveInfoDict.
The second is a report of an issue where FreeText annotations in PDF 1.3 are rejected even in relaxed validation mode, which was fixed as proposed. Both appear in the v0.16.0 release notes.
In takumi, which generates PDFs from JSX or HTML, a bug was reported where the output panics when generating tagged PDFs. The report included isolation of reproduction conditions and a workaround, and the fix was applied via a maintainer PR.
A PR was submitted to pdf-inspector, a PDF analysis library written in Rust, to fix loading of binary CMaps. All bundled CMaps were failing to load, and the fix enables character recovery from PDFs with CID fonts that lack ToUnicode.
Separately from PDFs, an issue and PR were also submitted for bee to allow SOCKS5/SOCKS4 proxies to be specified in HTTPS_PROXY and similar environment variables.
The PRs for pdf-inspector and bee had not yet been merged at the time of writing.
Published a mortgage dashboard and a browser extension that reconstructs PDFs as HTML
Mochida also published two of his own tools.
mortgage-forecast is a dashboard for reviewing variable-rate mortgage repayment projections and interest rate scenarios in a local or self-hosted environment.
accessible-pdf-view is a browser extension that reconstructs a PDF open in the browser as HTML with heading, list, and table structure. Its purpose is to make content readable by screen readers, and all processing is completed within the browser. It supports both Chrome and Firefox.
Reported issue where a Claude Platform on AWS Client cannot be passed in Claude SDK for TypeScript
This is a contribution by Iwata to the Claude SDK for TypeScript.
An issue was filed reporting that an EnvironmentWorker instance cannot be created. This occurs when passing the Client from @anthropic-ai/aws-sdk for Claude Platform on AWS. Since Claude Platform on AWS authenticates via SigV4, the authToken that EnvironmentWorker expects is not present. A workaround is also described in the issue.
The investigation that led to encountering this issue is introduced in the following article.
Reported bugs and fixed documentation in Floci
Last is my own contributions to Floci by me.
At the end of July, I reported two issues where the emulator returns success for operations it does not support. In CloudWatch Logs Insights, queries containing unsupported syntax did not return an error and instead returned unintended results. In Cloud Control API's ListResources, an empty list was returned for unsupported resource types, making it indistinguishable from "no resources exist."
Since supported Logs Insights syntax was not documented, I added it. After v2.1.0 changed unsupported queries to fail, I updated the documentation accordingly at the end of September.
In August, I fixed an issue where the ApiKey structure for AppSync differed from the AWS specification, causing authentication failures from the AWS CLI and SDK.
At the end of September, I reported an issue where certificates issued by Floci's local certificate authority fail strict validation in Python 3.13.
Closing
That's all for this time.
Of the 37 reports, 22 came from just two contributors—Morishige and Mochida—and both Floci and bee each had contributions from two different people. The forms of contribution varied widely; in some cases, such as tirith and Switchyard, a maintainer applied a fix after being prompted by an issue report.
Five projects were reported alongside DevelopersIO verification articles: Switchyard, Qwen-MM-Plugins, pulsar, the VLA simulator, and Claude SDK for TypeScript. Since the background leading up to the contribution is covered in each article, please check those out as well.
Stay tuned for the next installment.