Promote the generic, reusable parts of the private oo-workspace into the
public library/CLI, so oo-workspace can shrink to business glue.
- board.go: Board types + (c *Client) SyncBoard — upsert project
milestones/tasks by exact title from a YAML board (dry-run when
apply=false). CLI: oo projects board-sync.
- crm_audit.go: OpportunityAudit + (c *Client) AuditOpportunities —
file/task/member counts with a generic class (ok|dup|empty|junk-title).
CLI: oo crm audit [--out].
- catalog/names.go: CleanPersonNames / GuessNameFromEmail /
FormatProjectTitle (ported from oo-workspace).
- catalog: adopt the newer apply/match logic — name repair (never encode
company in lastName), company grouping key, contact-info type
normalization, preserve an already-applied oo_id. Keeps the local
Address/OOProjects fields and the config-driven classifier.
Business-only oo-workspace commands (crm clean/migrate, folders, search)
deliberately stay private.
eSlider
merged commit a9a77e110d into main2026-09-22 23:13:49 +01:00
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Promote the generic, reusable parts of the private oo-workspace into the public library/CLI; business-only commands stay private.
Not upstreamed (business): oo-workspace crm clean/migrate, folders, search.
Verification: go build/vet/test green; gitleaks clear.