mirror of
https://github.com/aaddrick/claude-desktop-debian.git
synced 2026-05-17 00:26:21 +03:00
fix: remove upstream label and reframe triage ownership
All bugs are ours to investigate and fix. This project's goal is to take a working Anthropic product and make it work on Linux. Behavioral differences between Windows/macOS and our build are gaps in our patching, not someone else's problem. - Delete 'upstream' label from repo (removed from 7 issues) - Replace "check patches before blaming upstream" with "all bugs are ours to fix" - Remove upstream from label glossary and suggested labels - Update all references in agent, workflow, and classification schema Co-Authored-By: Claude <claude@anthropic.com>
This commit is contained in:
@@ -38,7 +38,7 @@ The issue describes the same problem as an existing open issue. Link the origina
|
||||
The issue is plausible but lacks enough detail to investigate. Missing: distro/version, architecture, error messages, reproduction steps, logs.
|
||||
|
||||
### not-actionable
|
||||
The issue is understood but can't be acted on. Examples: upstream Claude Desktop bugs (label `upstream`), environment-specific issues outside project scope, stale reports for fixed versions.
|
||||
The issue is understood but can't be acted on. Examples: environment-specific issues outside project scope, stale reports for fixed versions.
|
||||
|
||||
### needs-human
|
||||
Use this when you're not confident enough to triage automatically. Examples: security reports, ambiguous issues touching multiple categories, issues requiring project policy decisions, anything where a wrong classification could be harmful.
|
||||
@@ -47,8 +47,8 @@ Use this when you're not confident enough to triage automatically. Examples: sec
|
||||
|
||||
## INVESTIGATION RULES
|
||||
|
||||
### Check our patches FIRST
|
||||
This project patches upstream code extensively. For bugs in patched areas (cowork, tray, frame, platform checks, window decorations), ALWAYS check whether OUR `build.sh` patches could be the cause BEFORE blaming upstream. Read the relevant `patch_` function in `build.sh` and trace what it modifies. A bug may be caused by our patch being stale, incomplete, or wrong — not by the upstream code itself.
|
||||
### All bugs are ours to fix
|
||||
This project's goal is to take a working Anthropic product and make it work on Linux. Every bug is something we can investigate and potentially patch. Check `build.sh` patches first for bugs in patched areas (cowork, tray, frame, platform checks, window decorations). Read the relevant `patch_` function and trace what it modifies. If a behavior difference exists between the Windows/macOS app and our Linux build, that's a gap in our patching, not someone else's problem.
|
||||
|
||||
### Verify before stating
|
||||
Only state facts you verified by reading actual code or running commands. Never claim code exists, functions behave a certain way, or patterns match without finding them in the source. If you cannot find evidence, say so explicitly rather than speculating.
|
||||
@@ -66,7 +66,7 @@ If you cannot verify a root cause, classify as `needs-human` rather than constru
|
||||
These are specific mistakes that have caused bad triage outcomes:
|
||||
|
||||
- **Never claim code exists without grep evidence.** If you say "the manifest ships linux entries," show the grep output that proves it. (#329: triage claimed linux manifest entries existed when they don't)
|
||||
- **Never blame upstream first.** Check `build.sh` patches before assuming the bug is in upstream code. This project patches heavily; our patches are often the cause. (#329: triage blamed upstream CDN when our checksum patch was wrong)
|
||||
- **Never dismiss a bug as someone else's problem.** Every issue is ours to investigate. Check `build.sh` patches first since our patches are often the cause. (#329: triage blamed CDN when our checksum patch was wrong)
|
||||
- **Never speculate about network/CDN behavior.** Use `curl -sI URL | head -5` to check. Don't guess HTTP status codes.
|
||||
- **Never propose patches to code paths that aren't reached.** Trace the actual execution flow before suggesting a fix. (#329: triage suggested patching a catch block that was never hit)
|
||||
- **Never present a theory as a finding.** Use "likely," "possibly," or "I could not confirm" when you haven't verified something. Reserve declarative statements for verified facts.
|
||||
@@ -90,7 +90,7 @@ When investigating bugs, search these files based on the issue category:
|
||||
| Native module issues | `claude-native-stub.js`, `build.sh` (search `native`) |
|
||||
| CI/workflow issues | `.github/workflows/` directory |
|
||||
|
||||
The **reference source** (`/tmp/ref-source/app-extracted/`) contains the beautified upstream Claude Desktop JavaScript. Use it when you need to understand upstream behavior that the build script patches or wraps. Key files:
|
||||
The **reference source** (`/tmp/ref-source/app-extracted/`) contains the beautified Claude Desktop JavaScript. Use it to understand the original behavior that the build script patches or wraps. Key files:
|
||||
- `.vite/build/index.js` — main process
|
||||
- `.vite/build/mainWindow.js` — main window preload
|
||||
- `.vite/build/mainView.js` — main view preload
|
||||
@@ -161,7 +161,7 @@ Common issue categories:
|
||||
- **Window decorations**: Missing title bars, frame issues (handled by frame-fix-wrapper.js)
|
||||
- **Tray icons**: Missing/wrong icons, SNI protocol issues on various DEs
|
||||
- **Packaging**: Format-specific issues (deb, rpm, AppImage, nix)
|
||||
- **Upstream bugs**: Issues in Claude Desktop itself, not the repackaging (label as `upstream`)
|
||||
- **Behavioral gaps**: Features or behaviors present in Windows/macOS but missing from our Linux build
|
||||
- **Cowork mode**: VM-based collaboration features, vsock communication
|
||||
|
||||
### Available Labels
|
||||
@@ -177,4 +177,4 @@ Format: `format: deb`, `format: appimage`, `format: rpm`, `format: nix`
|
||||
|
||||
Priority: `priority: critical`, `priority: high`, `priority: medium`, `priority: low`
|
||||
|
||||
Other: `upstream`, `regression`, `security`, `cowork`, `mcp`, `blocked`, `needs reproduction`
|
||||
Other: `regression`, `security`, `cowork`, `mcp`, `blocked`, `needs reproduction`
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
"suggested_labels": {
|
||||
"type": "array",
|
||||
"items": {"type": "string"},
|
||||
"description": "Additional labels to apply beyond the triage label (e.g. bug, enhancement, upstream, platform: amd64)"
|
||||
"description": "Additional labels to apply beyond the triage label (e.g. bug, enhancement, cowork, platform: amd64)"
|
||||
},
|
||||
"summary": {
|
||||
"type": "string",
|
||||
|
||||
24
.github/workflows/issue-triage.yml
vendored
24
.github/workflows/issue-triage.yml
vendored
@@ -152,7 +152,7 @@ jobs:
|
||||
--slurpfile related_issues /tmp/triage-context/related-issues.json \
|
||||
--slurpfile related_prs /tmp/triage-context/related-prs.json \
|
||||
--rawfile claude_md CLAUDE.md \
|
||||
-r '"You are classifying a GitHub issue for the claude-desktop-debian project.\nThis project repackages Claude Desktop (Electron app) for Debian/Ubuntu Linux.\n\n## Project Context\n" + $claude_md + "\n\n## Issue\n" + ($issue[0] | tostring) + "\n\n## Related Issues\n" + ($related_issues[0] | tostring) + "\n\n## Related PRs\n" + ($related_prs[0] | tostring) + "\n\n## Label Glossary\nOnly suggest labels that accurately apply. Here is what each label means:\n- bug: Confirmed or likely software defect in THIS project (packaging, patching, build scripts)\n- enhancement: New feature request or improvement to this project\n- question: Usage question, not a bug or feature request\n- duplicate: This issue duplicates another existing issue\n- upstream: Bug exists in Claude Desktop itself, not in our packaging/patching. NOTE: This project prefers to patch upstream issues when feasible rather than just labeling them upstream. Only use this label when a patch is clearly impractical.\n- regression: Previously working functionality that broke in a newer release\n- security: Security-related issue (always set skip_comment=true for these)\n- cowork: Related to Cowork mode ONLY — the VM-based Claude Code session feature launched from the desktop app Code tab. Do NOT use for general Code tab issues or session history issues.\n- mcp: Related to MCP (Model Context Protocol) server/plugin integration\n- blocked: Waiting on an external dependency to be resolved\n- needs reproduction: Cannot reproduce, need more info from reporter\n- platform: amd64 / platform: arm64: Issue is specific to one CPU architecture\n- format: deb / format: appimage / format: rpm / format: nix: Issue is specific to one package format\n- priority: critical: Blocks usage for most users\n- priority: high: Important, should be addressed soon\n- priority: medium: Should be addressed when possible\n- priority: low: Nice to have, not urgent\n\n## Instructions\n1. Read the issue carefully. Consider the title, body, and any comments.\n2. Check the related issues and PRs for duplicates or prior discussion.\n3. Classify the issue into one of: bug, feature, question, duplicate, needs-info, not-actionable, needs-human.\n4. Set skip_comment to true if: classification is needs-human, you have low confidence on a complex or sensitive issue, or the issue involves security concerns.\n5. Set needs_source_investigation to true only if understanding the upstream Claude Desktop JavaScript source would help investigate.\n6. Suggest additional labels from the Label Glossary above. Only apply labels you are confident are correct.\n7. If classifying as duplicate, set duplicate_of to the issue number.\n8. If classifying as needs-info, list specific questions to ask."' \
|
||||
-r '"You are classifying a GitHub issue for the claude-desktop-debian project.\nThis project repackages Claude Desktop (Electron app) for Debian/Ubuntu Linux.\n\n## Project Context\n" + $claude_md + "\n\n## Issue\n" + ($issue[0] | tostring) + "\n\n## Related Issues\n" + ($related_issues[0] | tostring) + "\n\n## Related PRs\n" + ($related_prs[0] | tostring) + "\n\n## Label Glossary\nOnly suggest labels that accurately apply. Here is what each label means:\n- bug: Confirmed or likely software defect in THIS project (packaging, patching, build scripts)\n- enhancement: New feature request or improvement to this project\n- question: Usage question, not a bug or feature request\n- duplicate: This issue duplicates another existing issue\n- regression: Previously working functionality that broke in a newer release\n- security: Security-related issue (always set skip_comment=true for these)\n- cowork: Related to Cowork mode ONLY — the VM-based Claude Code session feature launched from the desktop app Code tab. Do NOT use for general Code tab issues or session history issues.\n- mcp: Related to MCP (Model Context Protocol) server/plugin integration\n- blocked: Waiting on an external dependency to be resolved\n- needs reproduction: Cannot reproduce, need more info from reporter\n- platform: amd64 / platform: arm64: Issue is specific to one CPU architecture\n- format: deb / format: appimage / format: rpm / format: nix: Issue is specific to one package format\n- priority: critical: Blocks usage for most users\n- priority: high: Important, should be addressed soon\n- priority: medium: Should be addressed when possible\n- priority: low: Nice to have, not urgent\n\n## Instructions\n1. Read the issue carefully. Consider the title, body, and any comments.\n2. Check the related issues and PRs for duplicates or prior discussion.\n3. Classify the issue into one of: bug, feature, question, duplicate, needs-info, not-actionable, needs-human.\n4. Set skip_comment to true if: classification is needs-human, you have low confidence on a complex or sensitive issue, or the issue involves security concerns.\n5. Set needs_source_investigation to true only if understanding the original Claude Desktop JavaScript source would help investigate.\n6. Suggest additional labels from the Label Glossary above. Only apply labels you are confident are correct.\n7. If classifying as duplicate, set duplicate_of to the issue number.\n8. If classifying as needs-info, list specific questions to ask."' \
|
||||
> /tmp/classify-prompt.txt
|
||||
|
||||
result=$(claude -p "$(cat /tmp/classify-prompt.txt)" \
|
||||
@@ -199,7 +199,7 @@ jobs:
|
||||
retention-days: 1
|
||||
|
||||
# ──────────────────────────────────────────────────────────────────────
|
||||
# Job 3: Fetch Reference Source — download beautified upstream source
|
||||
# Job 3: Fetch Reference Source — download beautified original source
|
||||
# ──────────────────────────────────────────────────────────────────────
|
||||
fetch-reference:
|
||||
name: Fetch Reference Source
|
||||
@@ -335,7 +335,7 @@ jobs:
|
||||
cat << CONTEXT
|
||||
|
||||
The project repository is at $(pwd). Search the source code for relevant patterns.
|
||||
The beautified reference source (upstream app.asar) is at /tmp/ref-source/app-extracted/.
|
||||
The beautified reference source (original app.asar) is at /tmp/ref-source/app-extracted/.
|
||||
Key files: .vite/build/index.js (main process), .vite/build/mainWindow.js, .vite/build/mainView.js.
|
||||
|
||||
## Project Documentation
|
||||
@@ -344,7 +344,7 @@ jobs:
|
||||
cat << 'BODY'
|
||||
|
||||
## How This Project Patches Upstream Code
|
||||
IMPORTANT: All fixes to the upstream JavaScript are applied via sed/regex in build.sh.
|
||||
IMPORTANT: All fixes to the original JavaScript are applied via sed/regex in build.sh.
|
||||
Variable and function names are MINIFIED and change between releases.
|
||||
Patches must use regex patterns that match both minified and beautified spacing.
|
||||
Variable names are extracted dynamically with grep -oP, never hardcoded.
|
||||
@@ -354,13 +354,13 @@ jobs:
|
||||
|
||||
## Investigation Rules
|
||||
|
||||
### Check our patches FIRST
|
||||
This project patches upstream code extensively. For bugs in patched areas
|
||||
(cowork, tray, frame, platform checks, window decorations), ALWAYS check
|
||||
whether OUR build.sh patches could be the cause BEFORE blaming upstream.
|
||||
Read the relevant patch_ function in build.sh and trace what it modifies.
|
||||
A bug may be caused by our patch being stale, incomplete, or wrong — not
|
||||
by the upstream code itself.
|
||||
### All bugs are ours to fix
|
||||
This project's goal is to take a working Anthropic product and make it work
|
||||
on Linux. Every bug is something we can investigate and potentially patch.
|
||||
Check build.sh patches first for bugs in patched areas (cowork, tray, frame,
|
||||
platform checks, window decorations). Read the relevant patch_ function and
|
||||
trace what it modifies. If a behavior difference exists between Windows/macOS
|
||||
and our Linux build, that is a gap in our patching.
|
||||
|
||||
### Verify before stating
|
||||
Only state facts you verified by reading actual code or running commands.
|
||||
@@ -541,7 +541,7 @@ jobs:
|
||||
cat << 'INSTRUCTIONS'
|
||||
## Formatting Constraints
|
||||
- This is an automated one-shot triage comment. You will NOT be part of any follow-up conversation. Do not ask the reporter to share output with you, do not offer to write fixes, do not imply you will respond again. Write as if leaving a final note.
|
||||
- This project prefers to patch upstream issues when feasible. Frame findings in terms of what could be patched, not "this is upstream, nothing we can do"
|
||||
- Every bug is ours to investigate and fix. Frame findings in terms of what could be patched. Never dismiss an issue as someone else's problem.
|
||||
- Lead with the finding, then reasoning
|
||||
- Keep to 2-4 short paragraphs
|
||||
- Use code blocks or links where helpful
|
||||
|
||||
Reference in New Issue
Block a user