Add the GitHub and Files hosts and fix their defects #1616
Labels
No labels
P0
P1
P2
P3
bug
category/code-change
category/cross-repo
category/eval-run
category/investigation
category/no-test-target
category/owner-ruling
category/prose-artifact
category/recurring-chore
category/structure
category/umbrella
crc-refactor
create
delete
enhancement
filed-by/agent
filed-by/user
frozen
lint-rule
needs-info
needs-triage
next
plugin/cc-architect
plugin/os
plugin/os-adr
plugin/os-aidd-lint
plugin/os-backlog
plugin/os-context
plugin/os-doc-hygiene
plugin/os-sdlc
plugin/os-vault
project/cc-os
ready-for-agent
ready-for-human
recurring
review
rule-proposal
update
waiting
wayfinder:grilling
wayfinder:map
wayfinder:map
wayfinder:research
wayfinder:task
wayfinder:task
wontfix
worklist/deviations
worklist/lint-rule
worklist/new-implement-build
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
jared/cc-os#1616
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Problem
Ticketruns only on Forgejo after the tracer. Therepo:backend also has defects that lose data.Approach
Host::FilesandHost::GitHubwrapFileBackendandGithubBackend, asHost::ForgejowrapsForgejoBackend. Fix the defects in the backend, so every command gains the fix now and no second copy exists. Slice 8 moves the code into the hosts when it deletes the backends.Host#labels?returns false on Files, and slice 7 uses it. Owned rules: inventory 1.9 and 2.2.The
repo:list still hides closed tickets. Only a read of one ticket shows them.Required work:
Host::Files— check: presentdef labels?inplugins/os-backlog/lib/backlog/**/*.rbHost::GitHubonGithubBackend— check: presentclass GitHubinplugins/os-backlog/lib/backlog/**/*.rbCLI::Session#ticketto the host for each tracker kind, and delete the legacy fallback inCLI::IssueTarget— check: absentlegacy_showinplugins/os-backlog/lib/backlog/cli/issue_target.rbAcceptance criteria
repo:ticket with no labels, when a label is added, then thestate:line stays intact.repo:ticket, whenissue-showruns, then its title, labels, and closed state appear.repo:ticket, whenissuesruns, then the ticket does not appear.repo:ticket, whenissue-commentsruns, then the result holds comments and no body paragraphs.repo:tracker with an issue numbered 1000 or above, when a ticket is created, then its number does not collide.repo:file with nostate:key, when it closes, thenstate:lands inside the front matter.issue-showon each host, when it runs, then the output has the same keys as on Forgejo.issue-editon arepo:and agithub:tracker, when it runs, then the title and body change throughTicket.HostRoleTests, when it runs againstHost::FilesandHost::GitHub, then each example passes.Owner sketch
Non-goals
Do not rename a command before slice 9. Do not change
## Resolution,**Follow-ups:**, the body headings, the check form, the label names, or theissue-showJSON keys. Do not make a behavior change that this ticket does not name.Blocking edges
Blocked by #1615
Blocked by #857
Origin
docs/system-design-format/proof/2026-11-06-os-backlog-domain-objects.md, slice 3plugins/os-backlog/CONTEXT.md)VERDICT: CREATE
Work started on branch ticket-1616.
Work restarted on branch ticket-1616, with the corrected ticket body.
Resolution
Done: Host::Files and Host::GitHub wrap the old backends. issue-show and issue-edit run through Ticket on every tracker. IssueShow and the legacy fallback are deleted. Defects 1, 2, 3, 4, 19, 21 are fixed in FileBackend. Defect 12 is not a defect: forgejo-api walks every label page. A closed repo: ticket now gives its title and labels to every reader, as on Forgejo, so close, occurrence, categorize, checkout, bounce, and the sweep gate treat it as they do on Forgejo. Hand-finished: run 250 stalled and is abandoned.
Evidence: main
a45d11e8: os-backlog 468 runs, os-sdlc 3508 runs, ticket-takedown 623 runs, all 0 failures. Branch: seed 19992 plus three random seeds. AC9 test runs the real Forgejo Page class and fails under a first-page-only mutation. One design audit: KeyError finding rejected because require_cwd_tracker refuses a malformed tracker first; green tests kept as regression pins.Follow-ups: none. Runner stall recorded as an occurrence on #773.