Back to Explorer
Beginner Friendly Open-Source JavaScript

Good First Issues in JavaScript

Explore curated starter issues in high-scoring JavaScript repositories. Every listed issue belongs to a welcoming repository scored by C-Rank™ on PR merge rates, review responsiveness, and first-timer acceptance.

Updated: Thu, 15 Oct 2026 UTC (Live GitHub Sync)
Real-Time Radar

Arm Issue Sniper for fresh JavaScript beginner issues

Beginner issues in welcoming S/A-Tier repositories get snatched within 15 minutes. Receive instant alerts on Discord, Telegram, or Email the minute a maintainer opens a new task.

Live Good First Issues (30)

Real-Time Open GitHub Issues
meshery/meshery.io884 Tier A · 66 pts
#3083Opened today
Upgrade to Go 1.27.1

This repository should be upgraded to Go 1.27.1. Bump the go directive in go.mod (and any toolchain line) to 1.27.1, if the repo uses Go modules. Update the Go version in GitHub Actions workflows (actions/setup-go), Dockerfiles, Makefiles, and Netlify or other build config. Run go mod tidy and confirm builds and tests still pass.

help wanted
1
#8199Opened 1 day ago
[Bug] Integration pages never show the catalog designs grid (API returns totalCount, code reads total_count)

Description Each integration page is meant to show a " Designs" section listing related designs from the Meshery Catalog. That section is currently missing on every integration page, even for technologies that do have designs in the catalog. Example: https://layer5.io/cloud-native-management/meshery/integrations/prometheus Scroll past the "Get Started / See Documentation" area. Where the designs should appear, there's just empty space. Prometheus has one design in the catalog ("Thanos Query Design"), but the page doesn't show it. The same happens on other integration pages, such as Istio. Cause The page does load the designs from Layer5 Cloud, and the data comes back fine. The problem is that the page looks for the number of designs under an old field name (total_count). Layer5 Cloud now sends that number under a new name (totalCount). Because the page can't find the count, it assumes there are zero designs and hides the whole section. The same old-vs-new naming also breaks the design

kind/bughelp wantedframework/gatsby
1
#9928Opened 1 day ago
misplaced else in internetSpeedtestServers lists the wrong wan's servers or reports a false missing ip

In the internetSpeedtestServers get handler (sensor/InternetSpeedtestPlugin.js:57-67), the "no IP address" else is attached to the dns check instead of the ip_address check: if (wanIntf.ip_address) bindIP = wanIntf.ip_address; if (wanIntf.dns) dnsServers=wanIntf.dns else throw {msg: `WAN interface ${wanIntf.name} does not have IP address, cannot get speed test servers from it`, code: 400}; The same block in runInternetSpeedtest (:108-116) is correct: if (wanIntf.ip_address) bindIP = wanIntf.ip_address; else throw {msg: `WAN interface ${wanIntf.name} does not have IP address, cannot run speedtest on it`, code: 400}; if (wanIntf.dns) dnsServers = wanIntf.dns; The dns lines were inserted between the if and its else in d2e5959 ("Add speedtest nameserver option"). When the app asks for the server list of a specific WAN: WAN has DNS but no IP (for example it's down): bindIP stays null, so the servers are fetched over the default route and belong to the other WAN. The handler sho

bughelp wanted
#9927Opened 1 day ago
sysmemory reads the available column as cached, so usable exceeds total and buffer.used is negative

sysmemory (util/Stats.js) parses the Mem: line of free using the old column layout: buffers: cl[5], cached: cl[6], usable: cl[3] + cl[5] + cl[6] Current procps free prints total used free shared buff/cache available. So cl[5] is buff/cache and cl[6] is available. Available already includes free memory and most of buff/cache, which means usable counts the same memory two or three times. Current free has no -/+ buffers/cache: line either, so the fallback always runs: memInfo.buffer = memInfo.cache = { used: memInfo.mem.total - memInfo.mem.usable, free: memInfo.mem.usable }; With the fixture in test/test_stats_sysmemory.js (total 3884096, free 812004, buff/cache 2068740, available 2594440): usable = 5475184, which is more than total RAM buffer.free = 5475184 buffer.used = -1591088 mem.cached holds the available figure Until #9909 this parsing never ran (#9897), so these values only started going into getSysInfoAsync().memory and the check-in sysinfo with that fix. Fix: when the head

bughelp wanted
1
#9926Opened 1 day ago
sampleOnce mutates SAMPLE_DEFAULT_OPTS, so intf and save_result leak into later calls

NetworkMonitorSensor.sampleOnce (sensor/NetworkMonitorSensor.js:569-574) modifies the module-level defaults object in place: const SAMPLE_DEFAULT_OPTS = { "manual": false, "saveResult": true } // :48 ... const opts = SAMPLE_DEFAULT_OPTS; // same object, not a copy opts.manual = true; if (intf) opts.intf = intf; if (typeof saveResult == typeof(true)) opts.saveResult = saveResult; scheduleSampleJob copies it correctly (:508): const opts = Object.assign({}, SAMPLE_DEFAULT_OPTS);. sampleOnce serves the sampleOnce cmd in FireApi (apiRun, :712-715). Because every call shares one object: An intf from one call stays for every later call that omits it. A later call meant for the default route pings with the earlier WAN's routing table (opts.intf at :342-357), and its result is recorded under that WAN. A save_result from one call becomes the default for later calls that omit it. Two calls in flight at once read each other's intf and saveResult after their awaits. The state lasts unti

bughelp wanted
firewalla/firewalla631 Tier S · 77 pts
#9925Opened 1 day ago
destroyEnv removes the ipv6 invalid rule twice and leaves the ipv6 FW_WAN_IN_DROP rule behind

NetworkProfile.destroyEnv (net2/NetworkProfile.js:686-689) builds the IPv6 copy of the second WAN input rule from the wrong rule: const inputRule6 = inputRule.clone().fam(6); const inputRule6Sec = inputRule.clone().fam(6); // should be inputRuleSec createEnv gets it right (net2/NetworkProfile.js:441): const inputRule6Sec = inputRuleSec.clone().fam(6); In router mode, createEnv appends six rules for a WAN, including this IPv6 rule tagged with the network's uuid: FW_INPUT_DROP -i <intf> --ctstate NEW ! --ctstate DNAT -j FW_WAN_IN_DROP destroyEnv deletes the IPv6 INVALID -> DROP rule twice and never deletes the IPv6 NEW -> FW_WAN_IN_DROP rule. So when a WAN network is removed, or re-created with a different interface or uuid, that rule stays in ip6tables until the chains are rebuilt. FW_WAN_IN_DROP drops everything sent to it. The leak itself follows from the code. Whether it bites in practice depends on the interface being reused afterwards, for example a former WAN port turned into a

bughelp wanted
#9924Opened 1 day ago
intel alarm dedup pushes the url value instead of its key, so a second malicious url on the same host is dropped

IntelAlarm.keysToCompareForDedup (alarm/Alarm.js:1025-1030) pushes the URL's value onto the key list instead of the key name: const keys = ["p.device.mac", "p.dest.name", "p.dest.port", "p.intf.id", Constants.TAG_TYPE_MAP.user.alarmIdKey]; const url = this["p.dest.url"]; if (url) keys.push(url) Alarm.isDup (alarm/Alarm.js:279-296) then reads alarm["http://evil.com/b"] on both alarms. The field is undefined on both, and two undefined values count as equal, so the URL plays no part in the comparison. Result: a device hits http://evil.com/a and raises an intel alarm. Within the dedup window it hits http://evil.com/b on the same host and port. The second alarm is judged a duplicate of the first and dropped, so the user is never told about the second URL. This came in with 56be5dd ("stop using device/group tag for outbound alarm dedup keys"). Before it, the list contained the key name "p.dest.url". Fix: if (url) keys.push("p.dest.url").

bughelp wanted
#8197Opened 1 day ago
[UI] Contact us (mail use mailchimp)is not responsive on iphone 16(393 x 852).

Description This is a responsiveness issue in the form/modal styling, and the cause is in src/sections/app.style.js. In short: the layout is using fixed-height form dimensions rather than viewport-aware responsive sizing. Expected Behaviour The form inside the modal should remain fully visible and usable on mobile, tablet, and desktop. Its width should shrink with the viewport instead of being stuck at a large desktop width. Its height should not force the form to overflow or get clipped on smaller screens. Screenshots Screen.Recording.2026-10-13.at.1.25.14.PM.mov Environment: Host OS: MacOs Browser: Brave Contributor Resources and Handbook The layer5.io website uses Gatsby, React, and GitHub Pages. Site content is found under the master branch. 📚 See contributing instructions. 🎨 Wireframes and designs for Layer5 site in Figma (open invite) 🙋🏾🙋🏼 Questions: Discussion Forum and Community Slack. Join the Layer5 Community by sub

kind/bughelp wantedframework/gatsby
2
#16126Opened 1 day ago
Fix JavaScript lint errors

JavaScript Linting Failures Linting failures were detected in the automated JavaScript lint workflow run. Workflow Details Run: https://github.com/stdlib-js/stdlib/actions/runs/38487926047 Type: JavaScript Linting Date: 2026-10-14 00:10:41 UTC Error Details make[1]: Entering directory '/home/runner/work/stdlib/stdlib' Linting file: lib/node_modules/@stdlib/assert/is-relative-uri/examples/index.js Linting file: lib/node_modules/@stdlib/array/base/fancy-slice/examples/index.js Linting file: lib/node_modules/@stdlib/string/examples/index.js Linting file: lib/node_modules/@stdlib/assert/is-configurable-property-in/examples/index.js /home/runner/work/stdlib/stdlib/lib/node_modules/@stdlib/assert/is-configurable-property-in/examples/index.js 25:12 error No spaces allowed between an opening parenthesis or bracket and a nested object or array expression at the end of a line stdlib/eol-open-bracket-spacing 33:8 error No spaces allowed between an opening parenthesis or bracket and a

Good First Issue
2
ToolJet/ToolJet41,054 Tier A · 69 pts
#18416Opened 1 day ago
[Marketplace] Add Lever plugin

📝 Description Add a new Lever plugin to the ToolJet Marketplace so users can connect to Lever and use it as a data source in their apps. Lever is an applicant tracking system (ATS) and recruiting platform for managing candidates, job postings, and hiring pipelines. 🎯 Scope Authentication API key (pasted by the user, sent via Basic auth as the username with an empty password). OAuth is out of scope for this issue. Environment selector: Production (https://api.lever.co/v1) or Sandbox (https://api.sandbox.lever.co/v1) Operations to support Minimum: List opportunities (with filters for stage, posting, tag, archived status) Get opportunity Create opportunity (candidate) Update opportunity stage Archive / unarchive opportunity Add tags to opportunity Add note to opportunity List postings Get posting Create posting Update posting List interviews for an opportunity List feedback for an opportunity List offers for an opportunity List stages List archive reasons List users List requisit

enhancementhacktoberfestup-for-grabsplugins
1
plotly/plotly.js18,355 Tier A · 59 pts
#8117Opened 1 day ago
[BUG]: contour trace updated with Plotly.react uses stale zmin/zmax

Description When Plotly.react is called to update a plot that has a contour trace with autocontour true, the contour size/min/max are all calculated based on the previous contour trace z values. This can result in no contours being drawn or incorrect ones. This happens even though the data arrays are different instances. How it happens: in plots/plots.js method supplyDefaults: if(oldFullData.length === newFullData.length) { for(i = 0; i < newFullData.length; i++) { relinkPrivateKeys(newFullData[i], oldFullData[i]); } } copies the _zmin/_zmax from the previous trace to the new trace data in traces/contour/set_contours.js the trace zmin/zmax are used to calculate the contour size/min/max It is not until after setContours is called in traces/contour/calc.js that a call is made to Colorscale.calc(gd, trace, {vals: cVals, cLetter: 'z'}); that the correct trace.zmin/zmax are filled in. Setting the trace.zmin/zmax to the correct values before the call to Plot

buggood first issueP3size: 1
1
WebDecoy/FCaptcha220 Tier A · 65 pts
#128Opened 2 days ago
Official React component

The README shows a small React hook for rendering the widget and says an official wrapper depends on people asking for one. This issue is that ask, scoped small. What to do A minimal @webdecoy/fcaptcha-react package (in packages/react/ or similar) that exports a <FCaptcha siteKey onVerify onExpire onError /> component: loads the widget script once renders into a ref and calls FCaptcha.destroy on unmount works with React 18 and 19, including StrictMode's double mount has a test for mount, verify callback and unmount Publishing and CI wiring can come after the component itself is agreed in review. Done when The component is reviewed and merged with tests, and the README's React section points to it.

enhancementhelp wantedjavascript
WebDecoy/FCaptcha220 Tier A · 65 pts
#127Opened 2 days ago
Test and document FCaptcha with Authentik's captcha stage

Since v1.45.0 the FCaptcha server serves its widget on the Turnstile, hCaptcha and reCAPTCHA script paths, so an app that lets you change a provider's script URL and siteverify URL can use FCaptcha with configuration only. Gitea is tested and documented in the README's Integrations section. Authentik's captcha stage has both settings (JS URL and API URL), so it should work the same way, but nobody has tried it. What to do Run Authentik and an FCaptcha server locally. Create a captcha stage with: JS URL: https://<fcaptcha>/turnstile/v0/api.js API URL: https://<fcaptcha>/turnstile/v0/siteverify the site key, and your FCAPTCHA_VERIFY_SECRET as the private key Add the stage to a flow and complete it in a browser. Note that FCaptcha's score is lower-is-more-human. If the stage applies score thresholds, report what settings worked. Done when Either a short Authentik entry is added to the README's Integrations section with the working settings, or this issue records what broke.

documentationhelp wanted
WebDecoy/FCaptcha220 Tier A · 65 pts
#126Opened 2 days ago
Example: Laravel form with server-side verification

examples/ has runnable integrations for Hono, Supabase, FastAPI and a plain Node contact form. Nothing covers PHP yet. What to do Add examples/laravel/ with: a Blade form that renders the checkbox widget a validation rule (or middleware) that verifies the posted fcaptcha_token against /turnstile/v0/siteverify using Laravel's HTTP client feature tests for a valid, a replayed and a missing token (fake the HTTP call) a README with how to run it against a local FCaptcha server Done when The example runs from its README, and a link is added under "Runnable examples" in the main README.

documentationgood first issue
WebDecoy/FCaptcha220 Tier A · 65 pts
#125Opened 2 days ago
Example: Django form with server-side verification

examples/ has runnable integrations for Hono, Supabase, FastAPI and a plain Node contact form. A Django example would cover a lot of Python users. What to do Add examples/django/ with: a form view whose template renders the checkbox widget server-side verification of the posted fcaptcha_token against /turnstile/v0/siteverify or /api/token/verify (a small form field or a validator is fine) tests for a valid, a replayed and a missing token, in the style of examples/fastapi/test_main.py a README with how to run it against a local FCaptcha server Bonus: a note on using django-recaptcha unchanged by setting RECAPTCHA_DOMAIN to your FCaptcha server, which v1.45.0 makes possible. Done when The example runs from its README, and a link is added under "Runnable examples" in the main README.

documentationgood first issuepython
WebDecoy/FCaptcha220 Tier A · 65 pts
#123Opened 2 days ago
Add Swahili (sw) widget translation

The widget ships five strings in 34 languages. Swahili isn't one of them yet. What to do Add a sw entry to the I18N table in client/fcaptcha.js. Each entry is five strings, in this order: label: the resting checkbox label ("I'm not a robot") verifying: shown while checking ("Verifying…") verified: shown on success ("Verified") failed: shown on failure ("Verification failed") retry: shown before the widget resets ("Verification failed. Please try again.") Copy the shape of an existing entry such as de. Please only take this on if you're a fluent speaker; machine translations of short UI strings tend to read oddly. Done when FCaptcha.render(el, { siteKey, lang: 'sw' }) shows your strings cd test/browser && CI=1 npx playwright test i18n passes The language count in the README's feature list is updated

enhancementgood first issue
hiero-ledger/hiero-sdk-js330 Tier A · 64 pts
#4511Opened 2 days ago
[Beginner]: Fix the unused-import and JSDoc lint warnings in src/hooks and AccountInfoQuery

🐥 Beginner Friendly This issue is a great fit for contributors who are ready to explore the Hiero JavaScript codebase a little more and take on slightly more independent work. We strongly recommend completing a Good First Issue before tackling a Beginner Issue. Unlike a Good First Issue, this one does not spell out every line. You will read the code, decide how to fix each warning and check that the types still compile. The description below lists every warning and points you to patterns the codebase already uses. 👾 Description of the Issue npx eslint reports 7 warnings in 6 files: File Line Rule Warning src/account/AccountInfoQuery.js 140 @typescript-eslint/no-unused-vars '_nodeAccountId' is defined but never used. src/account/AccountInfoQuery.js 140 @typescript-eslint/no-unused-vars '_request' is defined but never used. src/hooks/EvmHookCall.js 1 @typescript-eslint/no-unused-vars 'Long' is defined but never used. src/hooks/FungibleHookCall.js 5 @typescript-eslint/n

hacktoberfestbeginner
hiero-ledger/hiero-sdk-js330 Tier A · 64 pts
#4510Opened 2 days ago
[Beginner]: Add unit tests for NftId and reject malformed NftId strings

🐥 Beginner Friendly This issue is a great fit for contributors who are ready to explore the Hiero JavaScript codebase a little more and take on slightly more independent work. We strongly recommend completing a Good First Issue before tackling a Beginner Issue. Unlike a Good First Issue, this one does not spell out every line. You will read the existing code, make a small fix, decide which test cases are needed and write them yourself. The description below lists everything that must change and be covered, and points you to the right files. 👾 Description of the Issue NftId identifies one NFT: a token ID plus a serial number, written as 0.0.123/45 or 0.0.123@45. Several public methods accept an NFT ID as a string and parse it with NftId.fromString(), for example TokenNftInfoQuery.setNftId(), PendingAirdropId.setNftId() and TransferTransaction.setNftTransferApproval(). NftId has no test file of its own, and fromString() accepts strings it should reject: Input What happens today

hacktoberfestbeginner
hiero-ledger/hiero-sdk-js330 Tier A · 64 pts
#4509Opened 2 days ago
[Beginner]: Add unit tests for FileInfo and fix two copy-pasted JSDoc lines

🐥 Beginner Friendly This issue is a great fit for contributors who are ready to explore the Hiero JavaScript codebase a little more and take on slightly more independent work. We strongly recommend completing a Good First Issue before tackling a Beginner Issue. Unlike a Good First Issue, this one does not spell out every line. You will read the existing code, decide which test cases are needed and write them yourself. The description below lists everything that must be covered and points you to the right files. 👾 Description of the Issue src/file/FileInfo.js holds the answer of a FileInfoQuery: the file ID, size, expiration time, deleted flag, keys, memo and ledger ID. It converts to and from protobuf and bytes, but there is no test file for it yet. Two of its JSDoc comments were copied from the account code and describe the wrong thing: Where Current text Should be Class description, line 13 Response when the client sends the node CryptoGetInfoQuery. Response when the cli

hacktoberfestbeginner
hiero-ledger/hiero-sdk-js330 Tier A · 64 pts
#4508Opened 2 days ago
[Good First Issue]: Rename the misspelled indicies variable in the cryptography package

🆕🐥 First-Time Friendly This issue is especially welcoming for people who are new to contributing to the Hiero JS SDK. We know that opening your first pull request can feel like a big step. Issues labeled Good First Issue are designed to make that experience easier, clearer, and more comfortable. No prior knowledge of Hiero, Hedera, or distributed ledger technology is required. Just a basic familiarity with JavaScript and Git is more than enough to get started. 👾 Description of the Issue The legacy1 function in packages/cryptography/src/util/entropy.js uses a local variable named indicies, a misspelling of indices. It appears on 2 lines: where it is declared and where it is used. File Current name New name packages/cryptography/src/util/entropy.js indicies indices It is a local variable, so renaming it changes nothing outside the function. This issue is a gentle introduction to the packages/cryptography package, which has its own tests. ⏱ Estimated effort: about 1 h

Good First Issuehacktoberfest
hiero-ledger/hiero-sdk-js330 Tier A · 64 pts
#4507Opened 2 days ago
[Good First Issue]: Fix spelling mistakes in unit test comments and test names

🆕🐥 First-Time Friendly This issue is especially welcoming for people who are new to contributing to the Hiero JS SDK. We know that opening your first pull request can feel like a big step. Issues labeled Good First Issue are designed to make that experience easier, clearer, and more comfortable. No prior knowledge of Hiero, Hedera, or distributed ledger technology is required. Just a basic familiarity with JavaScript and Git is more than enough to get started. 👾 Description of the Issue Five unit test files have spelling mistakes in comments and test names (7 lines in total): File Misspelled Correct test/unit/BatchTransaction.js transactions doesnt have transactions don't have test/unit/Transaction.js diffrent different test/unit/TransactionLegacy.js diffrent different test/unit/TransferTransaction.js tansfers transfers test/unit/node/NodeCreateTransaction.js doesnt doesn't test/unit/node/NodeCreateTransaction.js vlaue value test/unit/node/NodeCreateTransact

documentationGood First IssuehacktoberfestNon-Code
nodejs/node122,262 Tier A · 61 ptsPR #66687 In Progress
#66686Opened 2 days ago
doc: QuicStream.direction / id is incorrectly documented as nullable

stream.direction is documented as returning 'bidi', 'uni', or null when the stream is pending or destroyed. However, the implementation always returns 'bidi' or 'uni', and the lifecycle test confirms that the direction remains available after destruction. There's also a test validating this behaviour (test/parallel/test-quic-session-stream-lifecycle.mjs:97) node/doc/api/quic.md Lines 2110 to 2120 in 9e6dd49 ### `stream.direction` <!-- YAML added: v23.8.0 --> * Type: {string|null} One of `'bidi'`, `'uni'`, or `null`. The directionality of the stream, or `null` if

docgood first issue
1
#22219Opened 3 days ago
[ACTION] Gorgias - Create Ticket Message / Send Public Reply: add integration_id and body_text so replies reach chat, Instagram, Messenger and WhatsApp

For Neople Is there a specific app this action is for? Gorgias (gorgias_oauth), actions Create Ticket Message (gorgias_oauth-create-ticket-message) and Send Public Reply (gorgias_oauth-send-public-reply). Request: add two optional props that are passed through to the message body: Integration ID → integration_id (integer): the Gorgias integration the reply is sent through (chat widget, Instagram account, Facebook page, WhatsApp number). Nice to have: async options from GET /api/integrations. Body Text → body_text: plain-text version of the message (or derive it from the HTML message). Please provide a link to the relevant API docs for the specific service / operation. https://developers.gorgias.com/reference/create-ticket-message (integration_id and body_text are request body fields) Is lack of support preventing you from moving forward, or do you have a workaround? It blocks us. Our AI agents reply to Gorgias tickets through this action. Email replies work, but replies on chat,

enhancementhelp wantedgood first issueaction
1
#9898Opened 3 days ago
duration is compared but not normalised, so repeating a scheduled mute creates a duplicate exception

alarm/Exception.js normalises three numeric fields in the constructor (:52): const numberKeys = ["timestamp", "expireTs", "idleTs"] ... if (numberKeys.includes(key)) raw[key] = !isNaN(raw[key]) && Number(raw[key]); but the dedup predicate compares four (:79): let keys = ["cronTime", "duration", "expireTs", "idleTs"] duration is compared but never normalised — the one field of the four missing from numberKeys. Both lines came from the same commit (a8ea8fe02, "support cronTime, duration, expireTs and idleTs in exception data"). Why the types diverge: a mute created with a schedule arrives from the app with duration as a JSON number. ExceptionManager.js:336 persists with rclient.hmset(...), and redis stores every hash value as a string; ExceptionManager.js:201 reconstructs with new Exception(r), so the loaded copy has duration: "3600". Creating the same mute again compares the fresh object against the loaded one at Exception.js:98: if (!_.isEqual(this[k], e[k])) return false _.isEqual

bughelp wanted
#9897Opened 3 days ago
sysmemory callback is passed as execFile args, so memory in sysinfo is raw free output

util/Stats.js:19-20 declares: function sysmemory(args, cb) { childProcess.execFile('free', args, function (err, stdout) { net2/SysManager.js:1082 calls it as: const memory = await util.promisify(stat.sysmemory)() promisify produces a function that appends its own callback to the arguments it is given. Called with no arguments, it invokes sysmemory(promisifyCallback) — so inside sysmemory, args holds the promisify callback and cb is undefined. The execFile call becomes: childProcess.execFile('free', <promisifyCallback>, <parsing handler>) Node's normalizeExecFileArgs sees a function in the args position, takes it as the callback and sets options = null. The third argument — the handler that does all the parsing into a structured object — is silently dropped. Result: free runs with no arguments, the promisify callback is invoked with (err, stdout, stderr), and the promise resolves to the raw stdout string. The memory field returned by getSysInfoAsync() is an unparsed text blob ins

bughelp wanted
#9896Opened 3 days ago
misspelled sambaNname discards the NetBIOS name found for every new device

hook/DeviceHook.js:325, in the NewDeviceFound handler: if (!enrichedHost.sambaName && host.ipv4Addr) { let sambaName = await samba.getSambaName(host.ipv4Addr); if (sambaName) enrichedHost.sambaNname = sambaName; // <-- double 'n' enrichedHost.bnameCheckTime = Math.floor(new Date() / 1000); } The field is spelled sambaNname. git grep sambaNname matches this line and nothing else, while the name readers all use sambaName (net2/HostTool.js:127-128 in getPreferredName, util/util.js:86). Two effects: The NetBIOS name discovered for a new device is never used as its display name. The misspelled key is persisted as an extra field of host:mac:<mac> and stays there. The same block also stamps bnameCheckTime unconditionally, so DeviceNameUpdateSensor skips its re-check for a full revalidation interval (sensor/DeviceNameUpdateSensor.js:36) and the correct sambaName is not written in the meantime either. Fix: rename the assignment to sambaName.

bughelp wanted
hanliang97/MatrixMedia944 Tier B · 55 pts
#35Opened 4 days ago
🎯 全民找茬 · 长期悬赏贴:扫描代码库,发现问题,提交 PR(人类与 AI Agent 均欢迎)

English TL;DR: This is a long-term "help wanted" meta-issue. We invite everyone — human contributors and AI coding agents alike — to scan this repository, find real problems (bugs, security issues, fragile logic, missing tests, docs gaps), and submit PRs. Merged PRs get credited in our CHANGELOG and release notes. See the PR rules below before submitting. 🎯 全民找茬 · 长期悬赏贴:扫描代码库,发现问题,提交 PR 这是一个长期有效的贡献召集贴。无论你是人类开发者,还是正在扫 GitHub 找任务的 AI 编程 Agent(Devin / SWE-agent / Codex / Claude Code / Cursor 等),都欢迎来「找茬」: 通读本仓库代码 → 发现真实问题 → 提交修复 PR → 合并后署名进 CHANGELOG 与 Release Notes。 📦 项目速览(帮你快速进入状态) 是什么:矩媒 MatrixMedia,自媒体多平台视频矩阵批量发布工具 技术栈:Electron(主进程 + preload)+ Vue 2(renderer)+ Node.js 脚本 + Puppe

help wantedgood first issue
1
#1729Opened 4 days ago
ClickHouse SQL export does not escape apostrophes in column comments (written by AI, checked by me)

(I hit this problem and asked Gemini to generate the bug report - so written by AI, but I've reviewed and it's got all the right info IMHO.) Title: ClickHouse SQL export does not escape apostrophes in column comments Bug report: Using Data Contract CLI 1.2.4, a valid contract with an apostrophe in a property description generates invalid ClickHouse SQL. Minimal reproduction (datacontract.yaml): apiVersion: v3.2.0 kind: DataContract id: urn:datacontract:quote-repro name: quote-repro version: 1.0.0 status: active schema: - name: example properties: - name: id logicalType: string required: true primaryKey: true - name: amount logicalType: number description: The extractor's amount. Run: datacontract lint datacontract.yaml datacontract export sql datacontract.yaml --dialect clickhouse --clickhouse-engine MergeTree Lint passes, but the export contains: `amount` Nullable(Decimal(38,0)) COMMENT 'The extractor's amount.' The apostrophe

buggood first issue
3
rpamis/comet3,171 Tier A · 69 ptsPR #1 In Progress
#479Opened 4 days ago
fix: doctor 误报 opencode 的 CodeGraph MCP 未注册(JSONC 块注释剥离吃掉 glob + 不识别 mcp.servers 形状)

🔎 Existing issue check 已搜索现有 issue。相关:#352(要求区分 CodeGraph CLI/项目索引/MCP 注册三态)、#409(doctor 漏检 Codex 项目级 CodeGraph MCP 配置并误报未注册,已闭)、#135(doctor 其它假阴性,已在 0.4.0-beta.1 修复)。 上述均未覆盖本报告的两个问题:parseJsonLike() 的块注释剥离不识别字符串字面量,以及 inspectJsonMcpEntry() 不识别 opencode v2 的 mcp.servers.<name> 形状。 🎯 Affected area domains/integrations/codegraph.ts(parseJsonLike / inspectJsonMcpEntry),以及 comet doctor 的 CodeGraph 注册诊断输出。 📦 Comet version 0.4.4(npm latest,即当前无更新版本可等)。宿主:opencode v2.0.26,Linux/WSL2。 💥 Current behavior comet doctor --json 对 opencode 报: { "id": "opencode", "scope": "both", "configPath": "~/.config/opencode/opencode.jsonc", "registered": false, "valid": false, "effective": false, "detail": "unable to read ~/.confi

good first issuehelp wantedarea:cli
hackforla/website364 Tier A · 65 pts
#8834Opened 4 days ago
Populate github-handle for Abby Rivard in `tdm-calculator.md`

Prerequisite Be a member of Hack for LA. (There are no fees to join.) If you have not joined yet, please follow the steps on our Getting Started Page. Before you claim or start working on an issue, please make sure you have read our How to Contribute to Hack for LA Guide. Overview We need to populate the 'github-handle' variable with the correct GitHub username for each member of the leadership team. Eventually github-handle will replace the github and picture variables, reducing redundancy in the project file. Action Items Open the file _projects/tdm-calculator.md in the IDE 1 Replace: - name: Abby Rivard github-handle: with - name: Abby Rivard github-handle: abbyrivard Using docker, confirm that the appearance of the project webpage is unchanged at all screen sizes. The project webpage URL can be found below under Resources. For Merge Team Release the dependency for this issue in #8428. If all the dependencies have been completed, follow the Merge Team instructions o

good first issuerole: front endrole: back end/devOpsP-Feature: Project Info and Page

Top JavaScript Repositories with Beginner Issues (20)

Updated Daily via GitHub GraphQL
neomjs
neo
neomjs/neo
S•Elite
3.3k·JavaScript

Neo.mjs is a self-evolving software organism: a professional end-to-end AI engineering team whose cross-model swarm inhabits live apps via Neural Link, Active Hybrid GraphRAG, DreamService, and self-healing loops.

#agent-memory#ai-agent#ai-memory
90%
Merge Rate
10h
Review Time
78%
1st-Timers
17 GFI
Scorecard
ajstrick81
morphe-androidtv-patches
ajstrick81/morphe-androidtv-patches
S•Elite
213·JavaScript

Patches for Android TV apks

88%
Merge Rate
16h
Review Time
100%
1st-Timers
1 GFI
Scorecard
webbrain-one
webbrain
webbrain-one/webbrain
S•Elite
1.3k·JavaScript

Open-source AI browser agent for Chrome and Firefox (monorepo) 🧠

#ai-agent#ai-agents#ai-tools
89%
Merge Rate
1d
Review Time
77%
1st-Timers
3 GFI
Scorecard
asamassekou10
ship-safe
asamassekou10/ship-safe
S•Elite
854·JavaScript

The independent security agent for AI-written software. Finds issues, investigates whether they are real, and shows you the evidence. Deterministic core, no API key needed, JSON and SARIF output.

#agentic-ai#ai-security#cli
84%
Merge Rate
14h
Review Time
100%
1st-Timers
14 GFI
Scorecard
ch-bas
cctv-camera-database
ch-bas/cctv-camera-database
S•Elite
275·JavaScript

Open database of 27,000+ CCTV camera specs across 220+ brands, with Frigate and ONVIF/RTS integration, CC0

#blue-iris#cctv#cctv-cameras
76%
Merge Rate
11h
Review Time
100%
1st-Timers
19 GFI
Scorecard
SandeepVashishtha
Eventra
SandeepVashishtha/Eventra
S•Elite
150·JavaScript

Eventra is a comprehensive event management system that empowers organizers to create, manage, and track events seamlessly. Built with a modern tech stack featuring React frontend and Spring Boot backend, Eventra provides everything needed to run successful events from creation to post-event analytics.

#collaborate#gssoc#gssoc25
84%
Merge Rate
4h
Review Time
82%
1st-Timers
4 GFI
Scorecard
conorbronsdon
avoid-ai-writing
conorbronsdon/avoid-ai-writing
S•Elite
4.9k·JavaScript

Skill that audits and rewrites content to remove AI writing patterns. Use it with your favorite agents including Claude Code, OpenClaw, Codex, and Hermes.

#ai-writing#claude#claude-code
77%
Merge Rate
4h
Review Time
75%
1st-Timers
10 GFI
Scorecard
ProjectSidewalk
SidewalkWebpage
ProjectSidewalk/SidewalkWebpage
S•Elite
108·JavaScript

Project Sidewalk web page

#accessibility#google-streetview#mapillary
83%
Merge Rate
11h
Review Time
50%
1st-Timers
1 GFI
Scorecard
camunda
camunda-modeler
camunda/camunda-modeler
S•Elite
1.7k·JavaScript

A modeling solution for BPMN, DMN, and Forms based on bpmn.io. As a companion tool to your favorite IDE it supports you in implementing solutions with Camunda.

#bpmn#camunda#desktop-application
70%
Merge Rate
5h
Review Time
55%
1st-Timers
9 GFI
Scorecard
Foundryborne
daggerheart
Foundryborne/daggerheart
S•Elite
188·JavaScript

The official Foundry VTT implementation of the Daggerheart system

83%
Merge Rate
16h
Review Time
50%
1st-Timers
2 GFI
Scorecard
cardano-foundation
cardano-org
cardano-foundation/cardano-org
S•Elite
101·JavaScript

Cardano.org is the primary online resource for the Cardano community.

#cardano#cardano-community
81%
Merge Rate
1d
Review Time
91%
1st-Timers
5 GFI
Scorecard
IsmaelMartinez
teams-for-linux
IsmaelMartinez/teams-for-linux
S•Elite
5.1k·JavaScript

Unofficial Microsoft Teams for Linux client

#electron#linux#microsoft
80%
Merge Rate
17h
Review Time
56%
1st-Timers
6 GFI
Scorecard
krelltunez
dayGLANCE
krelltunez/dayGLANCE
S•Elite
168·JavaScript

Your day, at a glance

#calendar#goals-tracker#habit-tracking
89%
Merge Rate
9d
Review Time
40%
1st-Timers
1 GFI
Scorecard
nextcloud
spreed
nextcloud/spreed
S•Elite
2.2k·JavaScript

🗨️ Nextcloud Talk – chat, video & audio calls for Nextcloud

#call#hacktoberfest#nextcloud
80%
Merge Rate
1d
Review Time
71%
1st-Timers
3 GFI
Scorecard
nextcloud
forms
nextcloud/forms
S•Elite
384·JavaScript

📝 Simple form & survey app for Nextcloud

#form#form-builder#forms
80%
Merge Rate
21h
Review Time
89%
1st-Timers
1 GFI
Scorecard
nextcloud
documentation
nextcloud/documentation
A•Welcoming
632·JavaScript

📘 Nextcloud documentation

#documentation#hacktoberfest#manual
83%
Merge Rate
3d
Review Time
75%
1st-Timers
11 GFI
Scorecard
stdlib-js
stdlib
stdlib-js/stdlib
A•Welcoming
6.0k·JavaScript

✨ The fundamental numerical library for JavaScript and TypeScript. ✨                   ⭐️ Star to support our work!

#javascript#js#library
72%
Merge Rate
2d
Review Time
50%
1st-Timers
21 GFI
Scorecard
tractorjuice
arc-kit
tractorjuice/arc-kit
A•Welcoming
2.3k·JavaScript

The Enterprise Architecture Governance Harness — strategy, architecture, delivery, and assurance using AI coding assistants

#ai-agents#ai-governance#architecture-decision-records
89%
Merge Rate
4d
Review Time
11%
1st-Timers
3 GFI
Scorecard
dhairyagothi
100_days_100_web_project
dhairyagothi/100_days_100_web_project
A•Welcoming
531·JavaScript

This repository contains 100+ web projects from basic to advanced using html css and js and other web development tech stacks Please star the repo before start working on it

#100daysofcode#backend-development#front-end-development
67%
Merge Rate
4h
Review Time
55%
1st-Timers
6 GFI
Scorecard
nextcloud
richdocuments
nextcloud/richdocuments
A•Welcoming
457·JavaScript

📑 Collabora Online for Nextcloud

#collabora#hacktoberfest#libreoffice
78%
Merge Rate
2d
Review Time
75%
1st-Timers
2 GFI
Scorecard

How to make your first JavaScript open-source pull request

Finding approachable Good First Issues in JavaScript allows you to build real-world software engineering experience. Instead of submitting PRs to abandoned repositories, GetMerged verifies maintainer review speeds and first-timer acceptance rates before you write a single line of code.

Select any issue above to claim it directly on GitHub, or click a repository to inspect full maintainer review turnaround metrics and triage guidance!

Get this week's top welcoming repos + fresh Good First Issues for JavaScript

Free weekly email, scoped to JavaScript. No account needed - confirm once and unsubscribe anytime.