feat: implement ISSUE-WP-0005 connector mapping and scope alignment
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 2s
Build and Publish Container Image / build-and-push (push) Successful in 1m22s

Add MappingService (work_record_uuid ↔ external id), project/map CLI with
outward push-status, optional TaskSpec work_record fields, boundary-sync
policy, and packaging/capability framing cleanup. Mark WP-0005 finished.
This commit is contained in:
tegwick 2026-07-22 00:25:06 +02:00
parent 6855fb2a32
commit f88e9a28fe
16 changed files with 1300 additions and 179 deletions

View file

@ -12,6 +12,7 @@ from .commands import issue_group
from .backend_commands import backend_group
from .sync_commands import sync_group
from .serve_command import serve_command
from .map_commands import map_group, project_command
from .. import __version__
@ -23,22 +24,19 @@ from .. import __version__
@click.pass_context
def cli(ctx, config, backend, verbose):
"""
Universal Issue Tracking System
External issue-tracker connector (Gitea/Forgejo, local SQLite).
A backend-agnostic issue tracking tool that works with local SQLite,
Gitea, GitHub, and other issue tracking systems.
Not the origin of fleet work records see INTENT.md. Use project/map
to link work-record UUIDs to external issues when a tracker is in use.
Examples:
issue list # List all issues
issue create "Bug in parser" # Create new issue
issue show 42 # Show issue #42
issue close 42 # Close issue #42
backend add local ~/.issues # Add local backend
backend add gitea myrepo # Add Gitea backend
sync pull gitea # Sync from Gitea
sync push gitea # Sync to Gitea
issue list
issue create "Tracker note"
issue project <work-record-uuid> --title "..."
issue map show --uuid <uuid>
issue map push-status --uuid <uuid> --status progress
backend add local ~/.issues
sync pull gitea
"""
# Ensure the object exists
ctx.ensure_object(dict)
@ -54,6 +52,8 @@ cli.add_command(issue_group, name='issue')
cli.add_command(backend_group, name='backend')
cli.add_command(sync_group, name='sync')
cli.add_command(serve_command)
cli.add_command(map_group, name='map')
cli.add_command(project_command, name='project')
# Convenience aliases - direct issue commands