Hacktoberfest 2026:维护者为十月标记出来的 issue,仍然开放、适合新手。 浏览 Hacktoberfest issue

Duplication of dependencies

未关闭
#47 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

还没有人认领这个 Issue。

评估

难度
4/5
预计耗时
3-5 天
新手友好度
48/100
Issue 类型
缺陷
描述清晰度
基本清楚
活跃度
活跃
技术栈
typescript
领域
tooling

调研方向

issue 中没有指定源文件或测试。首先跟踪启动配置加载过程以及创建 .opencode 目录的代码,然后验证 JFROG_DEBUG_LOGS 和 XDG 基目录路径是如何解析的。完成的标准是:禁用日志记录时不会创建该目录,启用日志时使用请求的 XDG 位置,并且重复运行不会创建重复的依赖项。

由索引模型根据 Issue 内容生成。

描述

Whether JFROG_DEBUG_LOGS is enabled or not upon 1st run it creates empty .opencode directory from within path where opencode was run. Despite existence of ~/.config/opencode. On 2nd run opencode detects there is .opencode directory present and populates it with duplicate node_modules which results in slower startups, and higher disk usage.

If DEBUG_LOGS is enabled it at least has some meaning that it puts event-log.txt into it however that isn't necessary. You should respect xdg base dir spec and put logs according to variable to opencodes path (for example ~/.local/share/opencode/log/jfrog-event.log).

I append logs but it isn't certain from them (at least to me) why is .opencode being created when no LOGS=false
1st run

timestamp=2026-09-02T11:56:18.837Z level=INFO run=e19a753c message="loading tui config" path=/home/daru/.config/opencode/tui.json
timestamp=2026-09-02T11:56:18.846Z level=INFO run=e19a753c message="applying tui config" path=/home/daru/.config/opencode/tui.json order=1
timestamp=2026-09-02T11:56:18.847Z level=INFO run=e19a753c message="loading tui config" path=/home/daru/.config/opencode/tui.json
timestamp=2026-09-02T11:56:18.850Z level=INFO run=e19a753c message="applying tui config" path=/home/daru/.config/opencode/tui.json order=2
timestamp=2026-09-02T11:56:20.396Z level=INFO run=0bff64d9 message="creating instance" directory=/home/daru/.config/opencode
timestamp=2026-09-02T11:56:20.398Z level=INFO run=0bff64d9 message=fromDirectory directory=/home/daru/.config/opencode
timestamp=2026-09-02T11:56:20.576Z level=INFO run=0bff64d9 message=bootstrapping directory=/home/daru/.config/opencode
timestamp=2026-09-02T11:56:20.587Z level=INFO run=0bff64d9 message=loading path=/home/daru/.config/opencode/config.json
timestamp=2026-09-02T11:56:20.588Z level=INFO run=0bff64d9 message=loading path=/home/daru/.config/opencode/opencode.json
timestamp=2026-09-02T11:56:20.588Z level=INFO run=0bff64d9 message=loading path=/home/daru/.config/opencode/opencode.jsonc
timestamp=2026-09-02T11:56:20.618Z level=INFO run=0bff64d9 message=loading path=/home/daru/.config/opencode/opencode.jsonc
timestamp=2026-09-02T11:56:20.812Z level=INFO run=0bff64d9 message="Model discovery plugin initialized" category=plugin
timestamp=2026-09-02T11:56:20.823Z level=DEBUG run=0bff64d9 message="Using config hook timeout" category=config timeoutMs=5000
timestamp=2026-09-02T11:56:21.089Z level=DEBUG run=0bff64d9 message="Timed out loading resolved providers" category=discovery
timestamp=2026-09-02T11:56:21.237Z level=WARN run=0bff64d9 message="Provider model discovery failed" category=discovery provider=hento baseURL=https://ai.hento.org endpoint=/v1/models
timestamp=2026-09-02T11:56:21.237Z level=INFO run=0bff64d9 message="Provider model discovery completed" category=discovery providerCount=1 modelCount=25
timestamp=2026-09-02T11:56:21.240Z level=INFO run=0bff64d9 message="enabled LSP servers" serverIds="astro, bash, biome, csharp, clangd, clojure-lsp, dart, deno, dockerfile, eslint, elixir-ls, fsharp, gleam, gopls, haskell-language-server, jdtls, julials, kotlin-ls, lua-ls, nixd, ocaml-lsp, oxlint, php intelephense, prisma, pyright, razor, ruby-lsp, rust, sourcekit-lsp, svelte, terraform, texlab, tinymist, typescript, vue, yaml-ls, zls"
timestamp=2026-09-02T11:56:21.242Z level=INFO run=0bff64d9 message=init
timestamp=2026-09-02T11:56:21.941Z level=INFO run=0bff64d9 message="watcher backend" directory=/home/daru/.config/opencode platform=linux backend=inotify
timestamp=2026-09-02T11:56:21.954Z level=INFO run=0bff64d9 message="project copy refresh started" projectID=f05bfbe824f971b17ef9a078fd746faec4ec945f
timestamp=2026-09-02T11:56:22.455Z level=INFO run=0bff64d9 message="project copy refresh done" projectID=f05bfbe824f971b17ef9a078fd746faec4ec945f updated=[] removed=[]
timestamp=2026-09-02T11:56:22.479Z level=INFO run=0bff64d9 message="booting location services" directory=/home/daru/.config/opencode workspaceID=undefined
timestamp=2026-09-02T11:56:23.876Z level=INFO run=0bff64d9 message="watcher backend" directory=/home/daru/.config/opencode platform=linux backend=inotify
timestamp=2026-09-02T11:56:23.886Z level=INFO run=0bff64d9 message="project copy refresh started" projectID=f05bfbe824f971b17ef9a078fd746faec4ec945f
timestamp=2026-09-02T11:56:24.735Z level=INFO run=0bff64d9 message="project copy refresh done" projectID=f05bfbe824f971b17ef9a078fd746faec4ec945f updated=[] removed=[]
timestamp=2026-09-02T11:56:24.748Z level=INFO run=0bff64d9 message="booting location services" directory=/home/daru/.config/opencode workspaceID=undefined
timestamp=2026-09-02T11:56:26.815Z level=WARN run=0bff64d9 message="duplicate skill name" name=cloudflare-email-service existing=/home/daru/.claude/skills/cloudflare-email-service/SKILL.md duplicate=/home/daru/.agents/skills/cloudflare-email-service/SKILL.md
timestamp=2026-09-02T11:56:26.816Z level=WARN run=0bff64d9 message="duplicate skill name" name=agents-sdk existing=/home/daru/.claude/skills/agents-sdk/SKILL.md duplicate=/home/daru/.agents/skills/agents-sdk/SKILL.md
timestamp=2026-09-02T11:56:26.816Z level=WARN run=0bff64d9 message="duplicate skill name" name=web-perf existing=/home/daru/.claude/skills/web-perf/SKILL.md duplicate=/home/daru/.agents/skills/web-perf/SKILL.md
timestamp=2026-09-02T11:56:26.816Z level=WARN run=0bff64d9 message="duplicate skill name" name=turnstile-spin existing=/home/daru/.claude/skills/turnstile-spin/SKILL.md duplicate=/home/daru/.agents/skills/turnstile-spin/SKILL.md
timestamp=2026-09-02T11:56:26.816Z level=WARN run=0bff64d9 message="duplicate skill name" name=sandbox-next existing=/home/daru/.claude/skills/sandbox-next/SKILL.md duplicate=/home/daru/.agents/skills/sandbox-next/SKILL.md
timestamp=2026-09-02T11:56:26.816Z level=WARN run=0bff64d9 message="duplicate skill name" name=wrangler existing=/home/daru/.claude/skills/wrangler/SKILL.md duplicate=/home/daru/.agents/skills/wrangler/SKILL.md
timestamp=2026-09-02T11:56:26.817Z level=WARN run=0bff64d9 message="duplicate skill name" name=cloudflare-one-migrations existing=/home/daru/.claude/skills/cloudflare-one-migrations/SKILL.md duplicate=/home/daru/.agents/skills/cloudflare-one-migrations/SKILL.md
timestamp=2026-09-02T11:56:26.817Z level=WARN run=0bff64d9 message="duplicate skill name" name=sandbox-migrate-to-next existing=/home/daru/.claude/skills/sandbox-migrate-to-next/SKILL.md duplicate=/home/daru/.agents/skills/sandbox-migrate-to-next/SKILL.md
timestamp=2026-09-02T11:56:26.817Z level=WARN run=0bff64d9 message="duplicate skill name" name=sandbox-stable existing=/home/daru/.claude/skills/sandbox-stable/SKILL.md duplicate=/home/daru/.agents/skills/sandbox-stable/SKILL.md
timestamp=2026-09-02T11:56:26.817Z level=WARN run=0bff64d9 message="duplicate skill name" name=durable-objects existing=/home/daru/.claude/skills/durable-objects/SKILL.md duplicate=/home/daru/.agents/skills/durable-objects/SKILL.md
timestamp=2026-09-02T11:56:26.817Z level=WARN run=0bff64d9 message="duplicate skill name" name=cloudflare-one existing=/home/daru/.claude/skills/cloudflare-one/SKILL.md duplicate=/home/daru/.agents/skills/cloudflare-one/SKILL.md
timestamp=2026-09-02T11:56:26.817Z level=WARN run=0bff64d9 message="duplicate skill name" name=workers-best-practices existing=/home/daru/.claude/skills/workers-best-practices/SKILL.md duplicate=/home/daru/.agents/skills/workers-best-practices/SKILL.md
timestamp=2026-09-02T11:56:26.817Z level=WARN run=0bff64d9 message="duplicate skill name" name=cloudflare existing=/home/daru/.claude/skills/cloudflare/SKILL.md duplicate=/home/daru/.agents/skills/cloudflare/SKILL.md
timestamp=2026-09-02T11:56:26.819Z level=INFO run=0bff64d9 message=init count=27

2nd run

timestamp=2026-09-02T11:57:47.868Z level=INFO run=b6840543 message="loading tui config" path=/home/daru/.config/opencode/tui.json
timestamp=2026-09-02T11:57:47.874Z level=INFO run=b6840543 message="applying tui config" path=/home/daru/.config/opencode/tui.json order=1
timestamp=2026-09-02T11:57:47.875Z level=INFO run=b6840543 message="loading tui config" path=/home/daru/.config/opencode/tui.json
timestamp=2026-09-02T11:57:47.877Z level=INFO run=b6840543 message="applying tui config" path=/home/daru/.config/opencode/tui.json order=2
timestamp=2026-09-02T11:57:49.010Z level=INFO run=89886042 message="creating instance" directory=/home/daru/.config/opencode
timestamp=2026-09-02T11:57:49.011Z level=INFO run=89886042 message=fromDirectory directory=/home/daru/.config/opencode
timestamp=2026-09-02T11:57:49.123Z level=INFO run=89886042 message=bootstrapping directory=/home/daru/.config/opencode
timestamp=2026-09-02T11:57:49.131Z level=INFO run=89886042 message=loading path=/home/daru/.config/opencode/config.json
timestamp=2026-09-02T11:57:49.131Z level=INFO run=89886042 message=loading path=/home/daru/.config/opencode/opencode.json
timestamp=2026-09-02T11:57:49.132Z level=INFO run=89886042 message=loading path=/home/daru/.config/opencode/opencode.jsonc
timestamp=2026-09-02T11:57:49.148Z level=INFO run=89886042 message=loading path=/home/daru/.config/opencode/opencode.jsonc
timestamp=2026-09-02T11:57:49.171Z level=DEBUG run=89886042 message="loading config from /home/daru/.config/opencode/.opencode/opencode.json"
timestamp=2026-09-02T11:57:49.172Z level=INFO run=89886042 message=loading path=/home/daru/.config/opencode/.opencode/opencode.json
timestamp=2026-09-02T11:57:49.172Z level=DEBUG run=89886042 message="loading config from /home/daru/.config/opencode/.opencode/opencode.jsonc"
timestamp=2026-09-02T11:57:49.172Z level=INFO run=89886042 message=loading path=/home/daru/.config/opencode/.opencode/opencode.jsonc
timestamp=2026-09-02T11:57:56.124Z level=INFO run=89886042 message="Model discovery plugin initialized" category=plugin
timestamp=2026-09-02T11:57:56.131Z level=DEBUG run=89886042 message="Using config hook timeout" category=config timeoutMs=5000
timestamp=2026-09-02T11:57:56.421Z level=DEBUG run=89886042 message="Timed out loading resolved providers" category=discovery
timestamp=2026-09-02T11:57:56.566Z level=WARN run=89886042 message="Provider model discovery failed" category=discovery provider=hento baseURL=https://ai.hento.org endpoint=/v1/models
timestamp=2026-09-02T11:57:56.566Z level=INFO run=89886042 message="Provider model discovery completed" category=discovery providerCount=1 modelCount=25
timestamp=2026-09-02T11:57:56.569Z level=INFO run=89886042 message="enabled LSP servers" serverIds="astro, bash, biome, csharp, clangd, clojure-lsp, dart, deno, dockerfile, eslint, elixir-ls, fsharp, gleam, gopls, haskell-language-server, jdtls, julials, kotlin-ls, lua-ls, nixd, ocaml-lsp, oxlint, php intelephense, prisma, pyright, razor, ruby-lsp, rust, sourcekit-lsp, svelte, terraform, texlab, tinymist, typescript, vue, yaml-ls, zls"
timestamp=2026-09-02T11:57:56.571Z level=INFO run=89886042 message=init
timestamp=2026-09-02T11:57:57.195Z level=INFO run=89886042 message="watcher backend" directory=/home/daru/.config/opencode platform=linux backend=inotify
timestamp=2026-09-02T11:57:57.204Z level=INFO run=89886042 message="project copy refresh started" projectID=f05bfbe824f971b17ef9a078fd746faec4ec945f
timestamp=2026-09-02T11:57:57.656Z level=INFO run=89886042 message="project copy refresh done" projectID=f05bfbe824f971b17ef9a078fd746faec4ec945f updated=[] removed=[]
timestamp=2026-09-02T11:57:57.667Z level=INFO run=89886042 message="booting location services" directory=/home/daru/.config/opencode workspaceID=undefined
timestamp=2026-09-02T11:57:58.680Z level=INFO run=89886042 message="watcher backend" directory=/home/daru/.config/opencode platform=linux backend=inotify
timestamp=2026-09-02T11:57:58.688Z level=INFO run=89886042 message="project copy refresh started" projectID=f05bfbe824f971b17ef9a078fd746faec4ec945f
timestamp=2026-09-02T11:57:59.317Z level=INFO run=89886042 message="project copy refresh done" projectID=f05bfbe824f971b17ef9a078fd746faec4ec945f updated=[] removed=[]
timestamp=2026-09-02T11:57:59.323Z level=INFO run=89886042 message="booting location services" directory=/home/daru/.config/opencode workspaceID=undefined
timestamp=2026-09-02T11:58:01.747Z level=WARN run=89886042 message="duplicate skill name" name=cloudflare-email-service existing=/home/daru/.claude/skills/cloudflare-email-service/SKILL.md duplicate=/home/daru/.agents/skills/cloudflare-email-service/SKILL.md
timestamp=2026-09-02T11:58:01.748Z level=WARN run=89886042 message="duplicate skill name" name=web-perf existing=/home/daru/.claude/skills/web-perf/SKILL.md duplicate=/home/daru/.agents/skills/web-perf/SKILL.md
timestamp=2026-09-02T11:58:01.749Z level=WARN run=89886042 message="duplicate skill name" name=durable-objects existing=/home/daru/.claude/skills/durable-objects/SKILL.md duplicate=/home/daru/.agents/skills/durable-objects/SKILL.md
timestamp=2026-09-02T11:58:01.750Z level=WARN run=89886042 message="duplicate skill name" name=sandbox-next existing=/home/daru/.claude/skills/sandbox-next/SKILL.md duplicate=/home/daru/.agents/skills/sandbox-next/SKILL.md
timestamp=2026-09-02T11:58:01.751Z level=WARN run=89886042 message="duplicate skill name" name=agents-sdk existing=/home/daru/.claude/skills/agents-sdk/SKILL.md duplicate=/home/daru/.agents/skills/agents-sdk/SKILL.md
timestamp=2026-09-02T11:58:01.752Z level=WARN run=89886042 message="duplicate skill name" name=cloudflare-one existing=/home/daru/.claude/skills/cloudflare-one/SKILL.md duplicate=/home/daru/.agents/skills/cloudflare-one/SKILL.md
timestamp=2026-09-02T11:58:01.752Z level=WARN run=89886042 message="duplicate skill name" name=sandbox-stable existing=/home/daru/.claude/skills/sandbox-stable/SKILL.md duplicate=/home/daru/.agents/skills/sandbox-stable/SKILL.md
timestamp=2026-09-02T11:58:01.752Z level=WARN run=89886042 message="duplicate skill name" name=cloudflare-one-migrations existing=/home/daru/.claude/skills/cloudflare-one-migrations/SKILL.md duplicate=/home/daru/.agents/skills/cloudflare-one-migrations/SKILL.md
timestamp=2026-09-02T11:58:01.753Z level=WARN run=89886042 message="duplicate skill name" name=turnstile-spin existing=/home/daru/.claude/skills/turnstile-spin/SKILL.md duplicate=/home/daru/.agents/skills/turnstile-spin/SKILL.md
timestamp=2026-09-02T11:58:01.753Z level=WARN run=89886042 message="duplicate skill name" name=wrangler existing=/home/daru/.claude/skills/wrangler/SKILL.md duplicate=/home/daru/.agents/skills/wrangler/SKILL.md
timestamp=2026-09-02T11:58:01.753Z level=WARN run=89886042 message="duplicate skill name" name=cloudflare existing=/home/daru/.claude/skills/cloudflare/SKILL.md duplicate=/home/daru/.agents/skills/cloudflare/SKILL.md
timestamp=2026-09-02T11:58:01.753Z level=WARN run=89886042 message="duplicate skill name" name=workers-best-practices existing=/home/daru/.claude/skills/workers-best-practices/SKILL.md duplicate=/home/daru/.agents/skills/workers-best-practices/SKILL.md
timestamp=2026-09-02T11:58:01.754Z level=WARN run=89886042 message="duplicate skill name" name=sandbox-migrate-to-next existing=/home/daru/.claude/skills/sandbox-migrate-to-next/SKILL.md duplicate=/home/daru/.agents/skills/sandbox-migrate-to-next/SKILL.md
timestamp=2026-09-02T11:58:01.757Z level=INFO run=89886042 message=init count=27

event-log when LOGS=true, there was no event-log when false

JfrogOpencodePlugin starting...
jf CLI on PATH: false
config.skills.paths=["/home/daru/.cache/opencode/packages/@jfrog/[email protected]/node_modules/@jfrog/opencode-jfrog-plugin/skills"]
mcp: jfrog remote MCP not registered (need JFROG_PLATFORM_URL; or JFROG_MCP_DISABLE=true)
主要语言
TypeScript
星标
1
派生
1
平均合并
5 天 13 小时
30 天内合并 PR
3

贡献指南

打开贡献指南

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

相似的 Issue

更多 TypeScript Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。