morluto
b23f8288b4
fix(apple): validate cache file kinds and combined VM ranges
2026-10-08 20:52:20 +08:00
morluto
0f6dd6966c
chore: merge main into feat/dyld-shared-cache
2026-10-08 17:02:53 +08:00
morluto
92fcab2c68
fix(apple): retain caller-selected cache path in results
2026-10-08 16:51:39 +08:00
Ysopwnable
163ee09a74
feat(native): inspect recorded crashes through pwntools and pwndbg ( #1054 )
...
* feat(native): inspect recorded crashes through pwntools and pwndbg
* fix(native): bind core note semantics to raw owner bytes
* fix(native): validate recorded core ABI and evidence scalars
* fix(native): require complete recorded note interpretations
* fix(native): bind physical core notes to original headers
2026-10-08 16:50:31 +08:00
Ysopwnable
b9fb438835
fix(javascript): complete large-ASAR analysis with file-local projection ( #1055 )
2026-10-08 16:15:35 +08:00
morluto
d5921db039
chore: merge main into feat/dyld-shared-cache
2026-10-08 15:53:51 +08:00
morluto
d081ffbdce
fix(apple): harden dyld cache reads, mappings, and resolution findings
2026-10-08 15:36:31 +08:00
Ysopwnable
7af7bc88ce
feat(evm): inspect offline bytecode interfaces through EVMole ( #1051 )
...
* feat(evm): inspect offline bytecode interfaces through evmole
* fix(evm): distinguish unsupported bytecode targets
* style(evm): format verifier string-prefix checks
2026-10-08 15:32:05 +08:00
Kaoru0822 and Claude Opus 5.5
cd622e0e95
Merge branch 'feat/dylib-resolution' into feat/dyld-shared-cache
...
Bring in #927 's merge of main (#1037 at skill version 30):
- README_ja/ar/ko/zh: keep the merged tables and count
inspect_dyld_shared_cache in application workflows (13 -> 14).
- Skill: #927 now uses version 31, so this branch moves to 32.
- Regenerate the product catalog, conformance manifest, skill digest and
package metadata (138 tools).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-08 06:33:22 +00:00
Kaoru0822 and Claude Opus 5.5
3362dfa31e
chore: merge main into feat/dylib-resolution
...
main now carries #1037 (skill version 30, reworded native binary row):
- README_ja/ar/ko/zh: take main's tables and count
trace_dylib_resolution in the artifact graph row (5 -> 6).
- Skill: move to version 31.
- Regenerate the product catalog, conformance manifest, skill digest and
package metadata (137 tools).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-08 06:31:43 +00:00
Kaoru0822 and Claude Opus 5.5
f2f83c7499
Merge branch 'feat/dylib-resolution' into feat/dyld-shared-cache
...
Bring in #927 's merge of main (#964 at skill version 29):
- README_ja/ar/ko/zh: keep the merged tables and count
inspect_dyld_shared_cache in application workflows (13 -> 14).
- Skill: #927 now uses version 30, so this branch moves to 31.
- Regenerate the product catalog, conformance manifest, skill digest and
package metadata (137 tools).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-08 06:25:40 +00:00
Kaoru0822 and Claude Opus 5.5
6fa6300987
chore: merge main into feat/dylib-resolution
...
main now carries #964 (skill version 29, macOS native row 7 -> 8):
- README_ja/ar/ko/zh: take main's tables and count
trace_dylib_resolution in the artifact graph row (5 -> 6).
- Skill: move to version 30.
- Regenerate the product catalog, conformance manifest, skill digest and
package metadata (136 tools).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-08 06:23:44 +00:00
Ysopwnable
4fc6565b0f
feat(native): inspect offline ELF layout through pwntools ( #1037 )
...
* feat(native): inspect offline ELF layout through pwntools
* fix(build): prepare offline ELF verification on clean runners
* fix(native): preserve snapshot acquisition cancellation
* fix(native): handle sectionless ELF and retain decoder diagnostics
* test(native): verify malformed symbol table entry sizes
* fix(native): respect inherited limits and unused segment fields
* fix(native): preserve packed relocations and decoder launch constraints
* fix(native): validate symbol spans and preserve resource failures
* fix(native): preserve diagnostic completeness and memory failures
* fix(native): guard bridge imports against allocation failures
* fix(native): validate relocation symbol and section references
* fix(native): retain diagnostics through compounded cleanup failures
* fix(native): preserve unresolved relocation section references
* fix(native): bound linkage evidence and preserve CPU signal diagnostics
* fix(native): preserve file-size resource failure evidence
* fix(native): retain opaque linkage names and late cancellation output
* test(native): make CPU-limit fixture robust across runners
* fix(native): verify resource failure branches before interpreting exits
* fix(native): validate declared ELF string references
* fix(native): validate section-name table before decoding
* fix(native): enforce canonical ELF name-table escapes
2026-10-08 14:22:08 +08:00
Rudy Mizrahi Celekli and Ysopwnable
8d5c88f17c
fix(javascript): resolve module URLs and reject invalid exports targets ( #1031 )
...
Resolve module URL paths once and reject invalid root package exports targets before normalization. Preserve actionable graph diagnostics and array selection behavior.
Fixes #1040 .
Co-authored-by: Rudy Mizrahi Celekli <47457359+rudycelekli@users.noreply.github.com >
Co-authored-by: Ysopwnable <161784452+N0zoM1z0@users.noreply.github.com >
2026-10-08 14:00:34 +08:00
Rudy Mizrahi Celekli and N0zoM1z0
1154f2f03c
fix(javascript): reconstruct HTML script loads accurately ( #1042 )
...
* fix: parse HTML script references with HTML semantics
Signed-off-by: Rudy Celekli <47457359+rudycelekli@users.noreply.github.com >
* test(javascript): cover exact HTML script resource identity
---------
Signed-off-by: Rudy Celekli <47457359+rudycelekli@users.noreply.github.com >
Co-authored-by: N0zoM1z0 <1705004398@qq.com >
2026-10-08 13:24:24 +08:00
Kaoru0822 and Claude Opus 5.5
d180d8667d
Merge branch 'feat/dylib-resolution' into feat/dyld-shared-cache
...
Bring in #927 's merge of main and resolve conflicts:
- README.md: main's simplified English README has no tool-family table.
- README_ja/ar/ko/zh: keep main's reworded tables and count
inspect_dyld_shared_cache in application workflows (13 -> 14).
- Skill: #927 now uses version 29, so this branch moves to 30.
- Regenerate the product catalog, conformance manifest, skill digest and
package metadata (136 tools). The MCP tool catalog is now built rather
than committed (#997 ), so it is removed here.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-08 04:52:57 +00:00
Kaoru0822 and Claude Opus 5.5
5acdb9dc6f
chore: merge main into feat/dylib-resolution
...
Resolve conflicts against main:
- README.md: take main's simplified English README, which no longer has
the tool-family table.
- README_ja.md: take main's reworded table and count
trace_dylib_resolution in the artifact graph row (5 -> 6).
- Skill: the references gain the trace_dylib_resolution paragraph, so
the version moves to 29 (main already uses 28).
- Regenerate the product catalog, conformance manifest, skill digest and
package metadata (135 tools). The MCP tool catalog is now built rather
than committed (#997 ), so it is removed here.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-08 04:45:50 +00:00
Alex and N0zoM1z0
53409ab196
fix(javascript): resolve root package exports arrays ( #1046 )
...
Co-authored-by: N0zoM1z0 <1705004398@qq.com >
2026-10-08 12:45:21 +08:00
Alex
03424ae91e
fix(javascript): recognize digits in artifact URI schemes ( #1045 )
2026-10-08 12:28:34 +08:00
2bf3663f65
feat(browser): inspect historical web network captures ( #992 )
...
* feat(browser): inspect retained HAR and mitmproxy capture evidence
Add independent offline format adapters, inline CLI/MCP evidence, bounded
owned decoder processes, and real producer verification.
Refs #882
Assisted-by: Yukari (gensokyo-skills:yukari-boundary-analysis)
Assisted-by: Kogasa (gensokyo-skills:kogasa-surprise-testing)
* fix(browser): preserve capture boundaries during cancellation and decoding
Honor cancellation during owned-command cleanup, retain opaque HAR
extension content, and clean verifier resources on every failure path.
Refs #882
Assisted-by: Yukari (gensokyo-skills:yukari-boundary-analysis)
Assisted-by: Kogasa (gensokyo-skills:kogasa-surprise-testing)
* fix(browser): exclude sensitive capture fields across representations
Normalize known native transport URLs for both bytes and strings, including backups. Exclude explicitly sensitive text fields with null so redaction markers cannot reintroduce declared literals. Cover both provider identities in catalog conformance.
Refs #882
Assisted-by: Yukari (gensokyo-skills:yukari-boundary-analysis)
Assisted-by: Kogasa (gensokyo-skills:kogasa-surprise-testing)
* fix(browser): exclude sensitive capture identities and bound diagnostics
* fix(browser): validate excluded HAR subtrees before projection
* fix(browser): distinguish capture input limits from decoder failures
* fix(browser): preserve decoder failure categories
* fix(browser): validate excluded native credential values
* test(browser): report capture verifier assertions directly
* fix(browser): classify native representation failures precisely
* fix(browser): exclude URL userinfo after header whitespace
* fix(browser): preserve capture evidence and failure boundaries
* fix(browser): exclude sensitive literals from capture limitations
* test(browser): check limitation values without JSON syntax
* fix(browser): preserve acquisition integrity and exclude selection diagnostics
* fix(browser): preserve capture acquisition and declaration boundaries
* fix(mcp): project sensitive capture argument validation
* fix: preserve capture bytes and prelaunch cancellation
* fix(browser): exclude sensitive HAR record ancestry
* fix(browser): preserve transport URL and parameter exclusions
* fix(browser): preserve numeric redaction and canonical capture provenance
* fix(browser): cover derived capture values and ownership preparation deadlines
* fix(browser): exclude explicitly sensitive artifact digests
* chore: regenerate generated metadata
* fix(browser): reject lossy HAR member normalization
* test(browser): assert the advertised unsupported-profile outcome
* fix(browser): preserve JSON visitor nesting failure locations
* fix(browser): exclude explicitly sensitive native source ranges
---------
Co-authored-by: Kaoru0822 <208281322+kaoru0822-kitauji@users.noreply.github.com >
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-10-08 07:53:41 +08:00
Ysopwnable
6e4535c101
refactor(artifacts): move inventory and extraction into provider owners ( #1032 )
2026-10-08 05:51:14 +08:00
morluto
63cf28fd8f
fix(process): preserve partial evidence and verify detached cleanup ( #1011 )
...
* test(ci): allow transport delivery in source identity regression
* fix(process): preserve partial evidence and verify detached cleanup
* fix(process): scope Linux token sweeps by stable process identity
* fix(process): retain environment permission failure codes
* fix(process): wait for signaled processes before verifying cleanup
* fix(process): verify sampled detached groups during cleanup
* fix(electron): preserve prelaunch identities through cleanup
* fix(process): retry growing Darwin process table snapshots
* fix(process): retain compatibility with saved v3 capture evidence
* fix(process): migrate saved v3 captures during reconstruction verification
* fix(process): preserve cancellation during Darwin helper compilation
* fix(process): propagate cancellation through ownership baselines
* perf(javascript): cache canonical export comparison sort keys
* fix(process): cancel provider ownership preparation before spawn
* fix(process): isolate native compiler waiter cancellation
2026-10-08 04:46:46 +08:00
morluto
f8a53a8c06
test: consolidate service and process fixtures
2026-10-08 04:03:24 +08:00
morluto
f517a5a1d7
test(javascript): consolidate source analysis and export regressions
2026-10-08 04:03:23 +08:00
morluto
c93422a898
refactor: remove abandoned test-only analysis scaffolding
2026-10-08 04:03:23 +08:00
Ysopwnable
984fc27ce1
test(javascript): cover plain long-line loader identities ( #1025 )
2026-10-08 03:56:10 +08:00
Ysopwnable
7b18c58140
fix(javascript): report application analysis progress on the CLI ( #1008 )
...
* fix(javascript): report application analysis progress on the CLI
* test(cli): preserve progress in filtered output checks
2026-10-08 03:19:37 +08:00
morluto and Cursor Agent
1d62e54e1f
fix(snapshot): replay validated workflow evidence ( #984 )
...
* fix(snapshot): bind replay to validated cache entry
* fix(snapshot): persist composed workflow results
* fix(snapshot): enforce workflow replay identity
* fix(snapshot): honor cancellation after route resolution
* test(snapshot): make cancellation race deterministic
* fix(snapshot): replay all composed workflow evidence
* fix(snapshot): index workflow evidence once per snapshot
Validate workflow entries against a query and content index instead of scanning the evidence bundle for every entry.
* fix(snapshot): reuse previewed routes and bound workflow cache
---------
Co-authored-by: Cursor Agent <cursoragent@cursor.com >
2026-10-08 01:33:39 +08:00
96a46ada0a
fix(javascript): bound semantic node projection for resource safety ( #966 )
...
* fix(javascript): bound semantic node projection for resource safety
analyze_javascript_application exhausted the heap or failed serialization on
ordinary inputs. A small extracted tree crashed outright, and a larger
application tree failed at both the default heap and an 8 GB heap.
Cause: the semantic projection emits one node per AST expression, call site,
binding and property slot, with no ceiling. A five-file tree already yields on
the order of 170,000 nodes, and the whole result is serialized after the object
graph is built and validated. Result ceilings were deliberately removed upstream,
so nothing bounded this growth.
Apply two resource-safety ceilings and report them through the graph's own
coverage contract rather than dropping data silently:
- SEMANTIC_GRAPH_NODE_CEILING bounds retained nodes per tree (100,000, roughly
300 MB serialized, below V8's 512 MB string limit).
- SEMANTIC_GRAPH_FILE_NODE_CEILING bounds each source file (20,000) so one
bundled library cannot starve the application's own modules.
Exhausting either marks coverage truncated with a partial status and records the
ceiling in coverage.limits. A small application stays complete and untruncated.
Verified: a previously-crashing application tree now returns Evidence in under a
minute, while a small tree stays complete. Existing tests and check:fast pass.
* fix(javascript): report semantic graph truncation accurately
---------
Co-authored-by: REA Contributor <contributor@users.noreply.github.com >
Co-authored-by: morluto <76467478+morluto@users.noreply.github.com >
2026-10-08 01:22:10 +08:00
morluto and Cursor Agent
fe64fd65d9
fix(mcp): reject unknown MCP tool inputs ( #975 )
...
* fix(mcp): reject unknown official tool inputs
* fix(mcp): reject unknown native tool inputs
* test(mcp): follow native contract module move
* fix(mcp): reject unknown remaining tool inputs
* fix(mcp): satisfy strict unknown and browser input schemas
Remove obsolete approval fields from residual-unknown fixtures, project update inputs explicitly, and stop passing target_id to list-targets parsing.
---------
Co-authored-by: Cursor Agent <cursoragent@cursor.com >
2026-10-08 01:10:53 +08:00
Ysopwnable
6aa9afb549
refactor(process): separate capture implementation from analyst workflows ( #988 )
...
* refactor(process): separate capture implementation from analyst workflows
* fix(ci): generate source catalog before shard tests
2026-10-08 00:46:21 +08:00
Ysopwnable
161ed91571
test(process): wait for observable snapshot ctime changes ( #999 )
2026-10-08 00:24:44 +08:00
morluto
4a6073810a
fix(contracts): align CLI/MCP boundary contracts ( #946 )
...
* fix(cli): validate native scenario and preserve JSON paths
* fix(process): reject invalid UTF-8 JSON inputs
* fix(cli): retain missing JSON path diagnostics
* test(cli): cover relative brace and bracket JSON paths
* test(cli): reject missing native scenario steps
* fix(mcp): advertise reserved process environment key
* fix(process): reject NUL in process scenario values
* fix(process): advertise NUL input constraints to MCP
* fix(cli): report scenario input schema issues
* fix(contracts): align CLI and MCP input validation
* fix(mcp): document semantic output constraints
* fix(mcp): describe process journal compatibility
* docs: regenerate catalog after schema grouping
* docs: regenerate catalog after main merge
* fix(cli): preserve JSON and native UI input diagnostics
* test(mcp): reuse advertised tool schemas in managed flow
2026-10-08 00:03:36 +08:00
morluto
7dc40d3d9e
perf(evidence): scale imports and dependency graphs ( #941 )
...
* perf(evidence): avoid rebuilding ledger on record imports
* perf(evidence): scale unknown graph validation
* fix(evidence): preserve import and projection semantics
* fix(evidence): invalidate cache on metadata replacement
* test(evidence): isolate snapshot import regression
* fix(evidence): preserve snapshots on additive imports
2026-10-07 23:47:47 +08:00
morluto
93aa9eb5c2
fix(process): harden filesystem snapshot identity and cancellation ( #956 )
...
* fix(process): bind snapshots to captured file identity
* fix(process): honor snapshot cancellation for empty files
* test(process): verify snapshot descriptor cleanup
* fix(process): preserve snapshot cancellation results
* fix(process): preserve non-cancellation capture failures
* test(process): verify descriptor cleanup with fstat
* fix(process): detect snapshot changes by ctime
* test(process): prove snapshot ctime invalidation
2026-10-07 23:45:23 +08:00
Namnarak and Ysopwnable
98b2b027af
fix(linux): improve Hopper reliability and CachyOS support ( #963 )
...
* fix(linux): support CachyOS Hopper hosts
* fix(config): reuse user-local Hopper launcher
* fix(hopper): harden Linux demo dialog handling
* chore: retrigger CI after PR title fix
* fix(linux): align Hopper defaults and support docs
---------
Co-authored-by: Ysopwnable <161784452+N0zoM1z0@users.noreply.github.com >
2026-10-07 23:16:48 +08:00
Kaoru0822
3d6a31ed41
Merge branch 'feat/dylib-resolution' into feat/dyld-shared-cache
2026-10-07 14:49:09 +00:00
Kaoru0822
6fc77206e4
Merge remote-tracking branch 'origin/main' into feat/dylib-resolution
2026-10-07 14:48:35 +00:00
Ysopwnable
ea4db4c9f7
refactor(native): group analyst semantics workflows and contracts ( #973 )
2026-10-07 22:40:48 +08:00
Kaoru0822
8e53f794f1
Merge branch 'feat/dylib-resolution' into feat/dyld-shared-cache
...
# Conflicts:
# README.md
# README_ar.md
# README_ja.md
# README_ko.md
# README_zh.md
# docs/product-catalog.json
# docs/verification/managed-conformance-manifest.json
# skills/reverse-engineer-anything/SKILL.md
# src/generatedMcpToolCatalog.ts
2026-10-07 14:13:29 +00:00
Kaoru0822
3d889dc934
Merge remote-tracking branch 'origin/main' into feat/dylib-resolution
...
# Conflicts:
# docs/product-catalog.json
# docs/verification/managed-conformance-manifest.json
# skills/reverse-engineer-anything/SKILL.md
# src/generatedMcpToolCatalog.ts
2026-10-07 14:12:18 +00:00
Ysopwnable
33d4761cc7
refactor(binary): move production composition outside application workflows ( #965 )
2026-10-07 21:56:58 +08:00
Ysopwnable and morluto
b5afa5f91e
feat(browser): attribute native execution and listener sources ( #917 )
...
* feat(browser): attribute native execution and listener sources
Integrate finite native precise-coverage windows and direct DOM listener inspection through shared CLI/MCP workflows, exact session script identities, inline source evidence and owned instrumentation cleanup.
Refs #881 , #774
Assisted-by: Yukari (gensokyo-skills:yukari-boundary-analysis)
Assisted-by: Kogasa (gensokyo-skills:kogasa-surprise-testing)
* fix(browser): preserve runtime identity and settle fixture cleanup
Retain complete reported initiator objects, reject changing loader availability, propagate the selected operation through main-frame authorization and complete effect/help inventories. Close only the synthetic owned Chrome via its native endpoint, await process-group settlement and preserve primary verification errors during cleanup.
Refs #881
Assisted-by: Yukari (gensokyo-skills:yukari-boundary-analysis)
Assisted-by: Kogasa (gensokyo-skills:kogasa-surprise-testing)
* fix(browser): settle invalid events and preserve document evidence
Accept same-document URL changes with proven stable loader identity, retain metadata without inventing ownership, terminate malformed event collection immediately, and sanitize known transport URLs without erasing sourceURL declarations.
Assisted-by: Yukari (gensokyo-skills:yukari-boundary-analysis)
Assisted-by: Kogasa (gensokyo-skills:kogasa-surprise-testing)
* fix(browser): end detached target windows and sanitize coverage identities
Reuse the existing flat-session event matcher, retain prearming termination, and apply the source identity policy to coverage URLs. Add real MCP target-close verification and producer regressions for detachment orderings.
Assisted-by: Yukari (gensokyo-skills:yukari-boundary-analysis)
Assisted-by: Kogasa (gensokyo-skills:kogasa-surprise-testing)
* fix(browser): retain final sample metadata and settle fatal protocol failures
Keep source inventory open through the resetting sample, propagate fatal wire failures without outstanding commands, and check listener collection failures after final document validation.
Assisted-by: Yukari (gensokyo-skills:yukari-boundary-analysis)
Assisted-by: Kogasa (gensokyo-skills:kogasa-surprise-testing)
* fix(browser): require default execution worlds for website attribution
Preserve native context and world metadata without treating same-frame isolated or unknown contexts as website sources. Verify actual Chrome isolated function execution before excluding its coverage, and cover ambiguous world metadata with producer regressions.
Assisted-by: Yukari (gensokyo-skills:yukari-boundary-analysis)
Assisted-by: Kogasa (gensokyo-skills:kogasa-surprise-testing)
* fix(browser): revalidate runtime source joins and selector failures
Assisted-by: Yukari (gensokyo-skills:yukari-boundary-analysis)
Assisted-by: Kogasa (gensokyo-skills:kogasa-surprise-testing)
---------
Co-authored-by: morluto <76467478+morluto@users.noreply.github.com >
2026-10-07 21:45:07 +08:00
Kaoru0822 and Claude Opus 5.5
858aa9fd7d
fix(apple): hash the dyld cache through the handle its header was read from
...
main_file_sha256 now comes from the main cache file's open handle, so a path
replaced during inspection cannot attach another file's digest to the parsed
header and image list.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-07 13:35:58 +00:00
Kaoru0822 and Claude Opus 5.5
3b4969e3dc
Merge branch 'feat/dylib-resolution' into feat/dyld-shared-cache
...
Carry #952 's Apple ownership into the cache work: the cache reader and
fixture move to src/artifacts/apple/, the cache facts, platforms and
resolution schema to src/domain/apple/, the cache service to
src/application/apple/, and the lane to scripts/verify/apple/.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-07 13:32:48 +00:00
Kaoru0822 and Claude Opus 5.5
e5c6fccc35
Merge origin/main into feat/dylib-resolution
...
Follow #952 's Apple ownership: the Mach-O load-command reader, dylib
resolution adapter and fixture move to src/artifacts/apple/, the resolver,
dyld path semantics and findings to src/domain/apple/, and the dylib lane
helper to scripts/verify/apple/.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-07 13:28:14 +00:00
ysopwnable
ef1a0cc65a
refactor(apple): group artifact producers and verification ( #952 )
...
* refactor(apple): group artifact producers and verification
* test(apple): run affected native plist CLI regressions
2026-10-07 21:09:33 +08:00
Kaoru0822
202661f83b
Merge branch 'feat/dylib-resolution' into feat/dyld-shared-cache
...
# Conflicts:
# docs/product-catalog.json
# docs/verification/managed-conformance-manifest.json
# skills/reverse-engineer-anything/SKILL.md
# src/generatedMcpToolCatalog.ts
2026-10-07 12:26:24 +00:00
Kaoru0822
19f01e2610
Merge remote-tracking branch 'origin/main' into feat/dylib-resolution
...
# Conflicts:
# docs/product-catalog.json
# docs/verification/managed-conformance-manifest.json
# skills/reverse-engineer-anything/SKILL.md
# src/generatedMcpToolCatalog.ts
2026-10-07 12:23:08 +00:00
Kaoru0822
dda8e6a728
fix(setup): accept the pinned Hopper RPM launcher ( #933 )
2026-10-07 20:04:57 +08:00