dumbtv
dumbtv가 ADB로 Fire TV에서 광고·추적·업데이트 알림을 제거, 루트·앱 변경 없이, 무료 오픈소스
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기BountyDesk | Bugs, CVEs, bounties. Reproduced securely.
저장소 README에서 가져옴
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
The agent investigates. A human signs.
Agent-assisted bug-bounty triage. Authenticate the report, check scope, bind a
server-owned target, let a TrueForge agent investigate in a sandbox, and ship
a comment only after a human signs the exact text.
Demo video
·
Write-up
Built on the TrueForge agent harness for
the WeMakeDevs x TrueFoundry x Qodo Agent Harness Hackathon (Aug 2026).
Demo recording is not linked yet.
Live operator path: docs/demo-runbook.md .README 전문 보기 ↗| Step | What happens | |
|---|---|---|
| Intake | Signed GitHub App webhook. GitHub issue intake is live. Email and upload are designed, not wired. | |
| Queue | Durable Postgres job. Worker leases the row and opens a TrueForge session. | |
| Investigate | Agent uses scope-guard, sandbox, skills, and probes against the bound target. | |
| Draft | Agent calls approval-gated publish_verdict. Nothing is posted yet. | |
| Deliver | Reviewer Allow. Idempotent GitHub comment. Replay of the same delivery is a no-op. |
Intake and reproduction are separate. Reproduction needs a server-authorised TargetProfile. A report with no bound target, or one whose repository grant has been revoked, stops at ANALYSIS_ONLY. The platform refuses a reproduced or not-reproduced verdict for that report, whatever the agent asserts.
The demo target is the connected fork Vaibhav91one/juice-shop, pinned to commit 1867b926c5f50e4e692dc9c8f61821413cebe0cd (v17.3.0). It is built ahead of time and run from an immutable Daytona snapshot, so the reproduction sandbox does not clone or install dependencies during the demo.
| Invariant | Meaning |
|---|---|
| No bound target, no reproduced verdict | Capability boundary, not the agent's claim |
| No human approval, no GitHub comment | Human gate is never skippable |
The deterministic canary pipeline reproduced the Juice Shop SQL injection scenario from a real GitHub issue and delivered an approved comment on Vaibhav91one/juice-shop#5. Replaying the same webhook delivery produced no second report and no second comment.
The live path is now agent-authored. The TrueForge agent investigates and drafts its own outcome, summary, and findings. That code is merged. It still needs one fresh live run before it should be called live-proven. The canary pipeline is kept as a stronger evidence source, not as today's default path.
| Area | Honest status | |
|---|---|---|
| GitHub issue intake + SQLi canary proof | Proven live, including webhook replay | |
Agent-authored publish_verdict | Merged, not yet live-proven | |
| Login bypass scenario | Implemented, not live-proven | |
| Email and file-upload intake | Designed, not wired | |
| Arbitrary-repository build tier | Designed, not shipped | |
| DVWA, WebGoat, CVE labs | Practice targets unless bound, approved, and delivered as report-shaped runs | |
| Daytona | Hackathon demo sandbox layer, not the production isolation story |
TrueForge is the agent workflow, not a prompt wrapper.
| Surface | Used for |
|---|---|
| Sessions | One persistent investigation per report |
| MCP tools | Scope checks, target probes, and verdict drafting |
| Sandbox | A place for the agent to run investigation steps |
| Skills | Reusable target and triage instructions |
| Subagents | Split work during deeper investigations |
| Approvals | Pause before publish_verdict can become an outbound comment |
The final comment is not prefilled by the server. The agent writes it. The platform re-checks authorization before accepting any reproduced or not-reproduced claim. The reviewer signs the exact bytes that will be delivered.
BountyDesk ships the tools the agent uses, so the harness has real capabilities to grant rather than stubs.
Two MCP servers:
publish-verdict (app/api/mcp/publish-verdict) exposes the approval-gated publish_verdict tool the agent calls to draft its outcome, summary, and findings.scope-guard (app/api/mcp/scope-guard) holds the authorized scope and exposes probe_target, the approval-gated probe_target_write, and the scope checks. It is ported and hardened from the Sentinel prototype.Twelve agent skills under skills/: recon, triage, validation, api-security, payloads, dast, challenges, cve-lab-construction, firmware, mobile, and demo-targets are wired into the primary agent by agent/bountydesk.agent.json; target-onboarding is wired into its own agent by agent/target-onboarding.agent.json. All are registered with npm run skills:apply before npm run agent:apply.
| Piece | |
|---|---|
| Signed GitHub App issue intake | |
| Installation lifecycle handling and repository grant checks | |
| Postgres schema, durable queue, leases, workers, and delivery outbox | |
| Reviewer GitHub OAuth with an allowlist | |
| TrueForge session, turn, polling, approval, and delivery flow | |
publish_verdict, scope-guard, probe_target, and approval-gated probe_target_write | |
| Agent skills, subagents, sandbox-enabled manifest, and harness settings UI | |
| Case files with lifecycle, findings, artifacts, mirrored agent steps, and live tool-call detail | |
| Registered target profiles, including validated dynamic target manifests for manual setup |
npm install
npm run dev
Open http://localhost:3000. The landing page shows the product promise and the split between intake, investigation, approval, and delivery.
A real demo run needs a database, a GitHub App, TrueForge, and Daytona. See docs/demo-runbook.md.
| Need | Detail |
|---|---|
| Node.js | 22 or newer |
| npm | Project package manager |
| Postgres | App on DATABASE_URL (port 6543), migrations on DIRECT_URL (port 5432) |
| GitHub App | Metadata read, Issues read/write |
| TrueForge | Harness on http://localhost:8790 |
| Daytona | Credentials for the reproduction sandbox |
cp env.example .env.local
npm install
npm run db:migrate
npm run dev
In another terminal:
npx @truefoundry/trueforge@latest
Then configure the model and sandbox provider at /settings, register managed
harness resources, bind the demo repository, and start the worker. The demo seed
command below uses the committed Juice Shop profile, so .env.local must
contain real immutable target pins before it runs: DAYTONA_TARGET_IMAGE_DIGEST
and DAYTONA_TARGET_SNAPSHOT_ID, or their
BOUNTYDESK_TARGET_JUICE_SHOP_V17_3_0_* equivalents. For any non-demo target,
pass a reviewed target manifest with --manifest <path> and set the matching
BOUNTYDESK_TARGET_<ENV_PREFIX>_* pins.
npm run skills:apply
npm run agent:apply
npm run seed:target -- 1347703889
npm run worker:daemon
Copy env.example to .env.local and fill it in. Only the database block is required to boot the app. Do not commit real secrets.
| Doc | What it is |
|---|---|
| Demo runbook | Operator path for a live run |
| Decisions | Design record, Q1 to Q32 |
| Plan | What is proven and what is still open |
| Deployment | How the app is hosted |
| Target profiles | How a target is bound |
| Submission blog draft | Hackathon post draft |
| Contributing | PR and review rules |
During the hackathon window, every substantive change landed through a pull request reviewed by Qodo before merge. The Qodo trial expired in September 2026 and the trail ended there, so the table below is a historical record of that period, not a description of the current process. Today a merge needs a pull request, a green build check, and resolved conversations.
| PR | What Qodo found | What changed |
|---|---|---|
| #4 signed GitHub App webhook and installation lifecycle | Two High-severity intake bugs: a redelivered installation event could restore access after uninstall, and a suspension could race between access check and enqueue | Transactional lifecycle handling, row locks, and concurrency tests |
| #22 wire the real TrueForge approval flow into report processing | Deadline and cleanup problems in the approval loop | Retries escalate correctly, timeout comments stay honest, harness stops when a deadline path exits |
| #31 add the reproduction orchestrator and real oracle | Unsafe header override handling, lost dispatched body hashes, brittle readiness and cleanup | Hardened oracle contract and coverage for the report-shaped reproduction flow |
#39 split publish_verdict into draft and approval execution paths | Invalid drafts could still use an older path; approval screen hid important verdict outcome data | Agent drafting and human execution are distinct; review shows the relevant outcome |
#53 provision a reachable target sandbox and add probe_target | Weak boundary between read probes and state-changing target calls | probe_target_write is approval-gated; read-only inspection stays available |
| #59 support registered target profiles | Caller-selected target names could bind or rotate the wrong repository profile | Repository-to-profile mapping is derived and verified server-side |
| #60 settings screen for all five TrueForge harness surfaces |
This project was built with AI coding assistance under human direction. All changes are human-reviewed and merged through pull requests; during the hackathon window those reviews were Qodo's. Security-sensitive logic, including scope enforcement, intake authentication, delivery idempotency, and the approval gate, carries tests.
AGPL-3.0-only (see LICENSE). A hosted copy that offers BountyDesk as a service must
publish its source, including any modifications, to its users. This covers the core only; a
separate commercially licensed package carries the features gated behind a paid tier.
| Form and operator-flow bugs in the harness setup path |
| Timeout validation split from lifecycle intervals, malformed model lists handled safely, UI wording matches the harness |