Hi ๐, I'm Ryo Kusnadi
|
|
- A Simple Guide to Model Context Protocol for Software Engineers
- Structured Logging In Go 1.21
- How To Implement Harness Engineering
- Agentic AI Security: How Well Do You Know About Itโฆ
- Personal Summary: How to Plan Your Life
| No | Project | My Merged PR | Description | Last Update |
|---|---|---|---|---|
| 1 | semantix | #555 | fix(usage): stop charging L3 reuse cache-hit tokens as paid cost (Issue #548) | 2026-11-05 |
| 2 | scrutiny | #1104 | refactor(reports): use AttributeEvaluatedValue for ATA alert values | 2026-11-05 |
| 3 | comin | #225 | repository: fix the testing branch error message | 2026-11-05 |
| 4 | cozy-stack | #5172 | fix(csp): Match the directive name only at the start of a directive in AppendCSPRule | 2026-11-04 |
| 5 | replication-manager | #2311 | fix(crypto): Decrypt returns an error for a hash_ value that is not a ciphertext (#2308) | 2026-11-04 |
| 6 | opencloud | #3894 | fix(proxy): answer 403 instead of 500 when the role claim is missing | 2026-11-04 |
| 7 | devlake | #9324 | fix(jira): send startAt and maxResults when collecting worklogs | 2026-11-04 |
| 8 | replication-manager | #2302 | fix(cluster): CheckPrivileges looks up the replication user for ERR00007 (#2245) | 2026-11-04 |
| 9 | dagu | #3503 | Pin a mail server certificate by SHA-256 with tls_cert_sha256 | 2026-11-04 |
| 10 | replication-manager | #2301 | Logical reseed, mydumper and flashback dumps stay local when listed in scheduler-jobs-exec-remote (#2116) | 2026-11-04 |
| 11 | agent-sandbox | #2160 | examples: remove the default HF token from the JupyterLab example | 2026-11-04 |
| 12 | trpc-agent-go | #2719 | examples/skill: pin openai-whisper in the whisper skill install command | 2026-11-04 |
| 13 | scrutiny | #1086 | fix(notify): compare evaluated value for repeat-only-on-change notifications | 2026-11-04 |
| 14 | scrutiny | #1085 | fix(reports): show attribute name, value and threshold in alert lines | 2026-11-04 |
| 15 | sablier | #1277 | fix(api): stop listing registered groups in the group-not-found response | 2026-11-04 |
| 16 | ongrid | #574 | fix(setting): keep whitespace in Loki/Tempo basic-auth passwords end to end | 2026-11-04 |
| 17 | oxynote | #288 | fix(core): answer 401 when a Slack request signature is missing, wrong or expired | 2026-11-03 |
| 18 | oxynote | #287 | fix(core): trim variable and group names and limit their length | 2026-11-03 |
| 19 | cozy-stack | #5152 | fix(note): return an error for table markers outside a table | 2026-11-03 |
| 20 | ongrid | #573 | fix(aiops): cut query_knowledge previews on a rune boundary | 2026-11-03 |
| 21 | cozy-stack | #5143 | fix(jsonapi): Reject non-positive page[limit] | 2026-11-02 |
| 22 | dagu | #3480 | fix(browser): tell unlabeled table inputs apart by column header | 2026-11-02 |
| 23 | gin-vue-admin | #2272 | fix(web): ้่ฟ packageManager ๅบๅฎ pnpm ็ๆฌ๏ผไฟฎๅค Docker ๆๅปบๅคฑ่ดฅ | 2026-10-28 |
| 24 | kubernetes-mcp-server | #1511 | test: move unique tool and prompt tests to pkg/mcp | 2026-10-26 |
| 25 | kubernetes-mcp-server | #1502 | Added a metric that tracks in-flight MCP requests | 2026-10-26 |
| 26 | stackql | #870 | intrinsic: keep iac state directories under an operator root | 2026-10-24 |
| 27 | ongrid | #536 | fix(frontierbound): fail closed when an edge has no transport binding | 2026-10-22 |
| 28 | dagu | #3255 | Allow while and until repeat without a condition | 2026-10-21 |
| 29 | zeroid | #450 | fix: scope OAuth client admin routes to the caller's tenant | 2026-10-21 |
| 30 | dagu | #3230 | fix: keep npm and npx shims working for symlinked tool binaries | 2026-10-18 |
| 31 | ongrid | #525 | fix(aiops): stop hardcoding a 15s tool timeout | 2026-10-17 |
| 32 | ongrid | #524 | fix(aiops): make a zero tool timeout mean no deadline | 2026-10-17 |
| 33 | dagu | #3219 | Draw Activity runs as duration bars | 2026-10-17 |
| 34 | nginx-ui | #2025 | fix(site): keep extra locations when staging a pending TLS server | 2026-10-17 |
| 35 | dagu | #3185 | Fixed the dirlock so only one contender can take over a stale lock | 2026-10-16 |
| 36 | orloj | #179 | Added a built-in durable Postgres audit sink | 2026-10-16 |
| 37 | stackql | #847 | Added unit tests for the sqlrewrite package |
2026-10-15 |
| No | Project | My Opened PR | Description | Last Update |
|---|---|---|---|---|
| 1 | open-oscar-server | #224 | webapi: rate limit login attempts per IP | 2026-11-05 |
| 2 | scrutiny | #1103 | fix(reports): tell a zero alert threshold apart from no threshold | 2026-11-05 |
| 3 | sablier | #1286 | fix(docker): do not log or count a stop when the instance needed none | 2026-11-05 |
| 4 | claude-sync | #101 | fix: ignore drive-letter case when mapping Windows paths | 2026-11-05 |
| 5 | kine | #822 | Fix watch forwarder goroutine leak when consumer stops reading | 2026-11-05 |
| 6 | prebid-server | #5086 | Rules Engine Module: Limit number of cached accounts | 2026-11-05 |
| 7 | iotex-core | #5067 | fix(p2p): stop connectBootNode from blocking when only some bootnodes connect | 2026-11-04 |
| 8 | cloudflare-kubernetes-gateway | #430 | fix(controller): keep existing Deployment metadata when updating tunnel Deployment | 2026-11-04 |
| 9 | aws-sso-cli | #1513 | Fix device_code login getting no refresh token (sessions end after 8 hours) | 2026-11-04 |
| 10 | kopia | #5787 | fix(repository): rewrite deleted contents written through the repository server | 2026-11-04 |
| 11 | pilot | #6078 | fix(quality): a gate timeout kills the whole process group so it cannot hang on orphaned children | 2026-11-04 |
| 12 | pilot | #6077 | fix(quality): a required gate that times out on its last attempt now fails instead of counting as passed | 2026-11-04 |
| 13 | gocsv | #315 | Let callers recover a decoding panic in the UnmarshalToCallback functions | 2026-11-04 |
| 14 | opencloud | #3902 | fix(collaboration): close idle connections after the app discovery fetch | 2026-11-04 |
| 15 | dingtalk-workspace-cli | #1591 | fix(sheet): explain how to combine index with other properties in batch update | 2026-11-04 |
| 16 | dingtalk-workspace-cli | #1590 | fix(safechat): honour HTTP(S)_PROXY in the SafeChat key client | 2026-11-04 |
| 17 | devlake | #9335 | fix(jira): widen connection token column to text so long tokens are not truncated | 2026-11-04 |
| 18 | semaphore | #4405 | fix(templates): store an empty template vault name as NULL | 2026-11-04 |
| 19 | oxynote | #306 | fix(core): forward the client address and keep 429 from get-session distinct from 401 | 2026-11-04 |
| 20 | afero | #717 | Return EPERM from CopyOnWriteFs.RemoveAll for base-only paths | 2026-11-04 |
| 21 | afero | #716 | Keep the overlay untouched when an exclusive OpenFile on a base file fails | 2026-11-04 |
| 22 | fyne | #6656 | glfw: don't panic when fyne.Do is called while the app shuts down | 2026-11-04 |
| 23 | kube-image-keeper | #826 | fix(mirroring): wait for the scan interval after an interrupted destination pass | 2026-11-04 |
| 24 | gofr | #4591 | fix(auth): reject empty API keys so an empty x-api-key is not accepted | 2026-11-04 |
| 25 | gofr | #4590 | fix(elasticsearch): report not connected instead of panicking after a failed Connect | 2026-11-04 |
| 26 | beego | #5937 | fix(task): don't skip an hour in Schedule.Next after a DST fallback | 2026-11-04 |
| 27 | immich-go | #1502 | fix(config): report invalid config values even when a later setting is valid | 2026-11-04 |
| 28 | erigon | #25745 | rpc/jsonrpc: return [] instead of null from debug_getModifiedAccountsBy* when no account changed | 2026-11-04 |
| 29 | sq | #1337 | fix(xlsx): fail ingest if the batch inserter finishes before all rows are sent | 2026-11-04 |
| 30 | cc-connect | #2193 | fix(core): add one blank line, not one per event, between quiet-mode text segments | 2026-11-04 |
| 31 | cc-connect | #2192 | fix(claudecode): read session transcript lines over 256KB in /list and /history | 2026-11-04 |
| 32 | claude-sync | #100 | fix(sync): decide remote change by ETag, not by comparing two clocks | 2026-11-04 |
| 33 | oxynote | #303 | fix(core): validate document name and icon on create and in MCP tools | 2026-11-04 |
| 34 | beego | #5936 | fix(web): give the HTTPS listener its own http.Server in normal mode | 2026-11-04 |
| 35 | semaphore | #4396 | fix(ssh): honor dirs.ssh_agent_sockets for SSH agent sockets | 2026-11-04 |
| 36 | lava | #2344 | fix(rpcprovider): make SleepUntilTimeOrConditionReached race-free and stop at the deadline | 2026-11-04 |
| 37 | clickhouse-backup | #1665 | download: don't leave half-extracted parts when a download is interrupted, fix #1633 | 2026-11-04 |
| 38 | clickhouse-backup | #1664 | create: run the first FREEZE serially when shadow/increment.txt doesn't exist | 2026-11-04 |
| 39 | woodpecker | #7476 | Fix docker detached service reported as failed when teardown removes it before wait (incl. Podman 404) | 2026-11-04 |
| 40 | goclaw | #1650 | fix(tools): pass agent context window and max_tokens to media tools via the claude_cli bridge and /v1/tools/invoke (#1649) | 2026-11-04 |
| 41 | WeKnora | #5097 | fix(knowledge): check parser engine before reparse deletes existing content | 2026-11-04 |
| 42 | WeKnora | #5096 | fix(faq): add id tiebreaker to FAQ entry pagination order | 2026-11-04 |
| 43 | kubernetes-mcp-server | #1611 | docs(config): explain which values belong in Secrets, not ConfigMaps | 2026-11-04 |
| 44 | tusd | #1415 | handler: fix data race on request body and lost early interruption | 2026-11-03 |
| 45 | opencloud | #3895 | fix(antivirus): treat a clamd ERROR reply as a failed scan | 2026-11-03 |
| 46 | bumblebee | #91 | fix(osv): emit any-version entry when an affected entry also lists versions | 2026-11-03 |
| 47 | yarr | #349 | parser: detect feed format beyond the first 2 KB | 2026-11-03 |
| 48 | immich-go | #1501 | fix(google-takeout): apply sidecar metadata when its title is empty | 2026-11-03 |
| 49 | hive | #1658 | internal/libdocker, internal/libhive: keep full container IDs and don't wait on failed removal | 2026-11-03 |
| 50 | go2rtc | #2646 | Fix PTS clock for tapo backchannel audio | 2026-11-03 |
| 51 | sensu-go | #5204 | fix: remove user config subscription when NewSession fails | 2026-11-03 |
| 52 | frontier | #2043 | fix(mailer): time out when the SMTP server never sends its greeting | 2026-11-03 |
| 53 | sensu-go | #5203 | fix: close agent connection when agentd fails to create a session | 2026-11-03 |
| 54 | go2rtc | #2644 | xiaomi/legacy: fix Aqara G2 H264 probe panic and camera without audio | 2026-11-03 |
| 55 | copy | #185 | fix: refuse to copy a file onto itself instead of truncating it | 2026-11-03 |
| 56 | fleet-telemetry | #584 | Stop Kafka producer goroutines when the producer is closed | 2026-11-03 |
| 57 | kubernetes-ingress | #875 | BUG/MEDIUM: certs: wait for the certificate writers before deciding on a reload | 2026-11-03 |
| 58 | k8up | #1294 | Buffer backupCommand output so a slow restic start does not drop the exec stream | 2026-11-03 |
| 59 | bindery | #3605 | fix(api): look up authors with the library list scope in Add Book and Add Author | 2026-11-03 |
| 60 | super | #7597 | fix panic on record literal with untyped optional none field | 2026-11-03 |
| 61 | super | #7594 | fix panic comparing uint64 values >= 2^63 to signed integers | 2026-11-03 |
| 62 | bindery | #3604 | fix(scheduler): refresh nightly recommendations for every account (#3566) | 2026-11-03 |
| 63 | lakeFS | #10592 | Fix cherry-pick changing the source commit's metadata | 2026-11-03 |
| 64 | Paradev | #9318 | fix(host-service): list GitHub repositories without repeats when a push lands mid-walk | 2026-11-03 |
| 65 | Paradev | #9317 | fix(desktop): collapse Pinned and Projects sidebar sections independently | 2026-11-03 |
| 66 | zeroid | #480 | fix(store): a missing binding is not-found, not explicitly disabled | 2026-11-03 |
| 67 | zeroid | #479 | fix(store): attestation policy repo runs on the transaction in ctx | 2026-11-03 |
| 68 | steampipe | #5084 | Fix plugin manager panic when connection config changes while a plugin is starting | 2026-11-03 |
| 69 | pulumi | #25507 | Return an error instead of panicking for a parented custom resource with an invalid type token | 2026-11-03 |
| 70 | lakeFS | #10590 | Fix prepare GC commits crash when fetching a parent commit fails | 2026-11-03 |
| 71 | adk-go | #2115 | fix(mcptoolset): let a CommandTransport reconnect | 2026-11-03 |
| 72 | zeroid | #475 | fix: ignore unknown columns on every scan (WithDiscardUnknownColumns) | 2026-11-03 |
| No | Project | My Merged PR | Description | Last Update |
|---|---|---|---|---|
| 1 | go-sdk | #563 | Added PKCE check support to OAuth | 2025-10-14 |
| 2 | echo | #2461 | Added Skipper unit tests for BasicAuth and clearer BasicAuthValidator docs | 2024-02-18 |
| 3 | gci | #178 | Added an alias import section | 2023-10-18 |




