Fresh hub entity per the founder-reviewed decision (not a suggestions rename-bridge): kind: intake per canon/standards/work-record-types_v0.1.md, lifecycle open -> vetted -> routed -> closed(promoted|declined|absorbed). - api/models/base.py::new_uuid7 -- dependency-free RFC 9562 UUIDv7 generator (48-bit ms timestamp, version/variant bits, random remainder); existing tables keep new_uuid (UUIDv4) unchanged, this is opt-in for new work-record entities per the identity-layering canon - api/models/intake.py: Intake + IntakeNote ORM models, mirroring Decision's shape (topic/workplan/repo scope, lane, status, outcome, promoted_to back-link); CHECK constraints enforce scope-required, closed-requires-outcome, promoted-requires-promoted_to at the DB level - migrations/a7c3e9f1b4d2: intakes + intake_notes tables, 3 enum types - api/routers/intake.py: list/create/get/patch + /route + /close + /notes actions, mirroring decisions.py's pattern (409 on invalid transitions, progress event on close) - api/schemas/intake.py: Pydantic create/update/route/close/note schemas - mcp_server/server.py: create_intake, list_intakes, route_intake, close_intake tool wrappers - tests/test_intake.py: 12 tests against the real Postgres test DB (create/list/scope-validation, full lifecycle incl. 409s and the promoted-requires-promoted_to constraint, notes, UUIDv7 verification) Verified live against the running dev API + DB (not just pytest): applied the migration, restarted the MCP server, and ran a full create -> route -> close cycle over the real REST endpoints. No regressions: full existing suite (test_routers_core, test_suggestions, test_mcp_smoke, test_mcp_write_tools, test_mcp_registration, test_consistency_check, test_consistency_sweep) all green. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
85 lines
No EOL
3.1 KiB
Python
85 lines
No EOL
3.1 KiB
Python
from api.models.base import Base
|
|
from api.models.domain import Domain
|
|
from api.models.domain_goal import DomainGoal, DomainGoalStatus
|
|
from api.models.topic import Topic, TopicStatus
|
|
from api.models.managed_repo import ManagedRepo
|
|
from api.models.repo_goal import RepoGoal, RepoGoalStatus
|
|
from api.models.workplan import Workplan
|
|
from api.models.workplan_dependency import WorkplanDependency
|
|
from api.models.workstream import Workstream
|
|
from api.models.workstream_dependency import WorkstreamDependency
|
|
from api.models.task import Task, TaskStatus, TaskPriority
|
|
from api.models.decision import Decision, DecisionType, DecisionStatus
|
|
from api.models.intake import (
|
|
Intake,
|
|
IntakeNote,
|
|
IntakeLane,
|
|
IntakeStatus,
|
|
IntakeOutcome,
|
|
)
|
|
from api.models.progress_event import ProgressEvent
|
|
from api.models.extension_point import ExtensionPoint, EPStatus
|
|
from api.models.technical_debt import TechnicalDebt, TDStatus
|
|
from api.models.contribution import Contribution, ContributionType, ContributionStatus
|
|
from api.models.sbom_snapshot import SBOMSnapshot
|
|
from api.models.sbom_entry import SBOMEntry, Ecosystem
|
|
from api.models.agent_message import AgentMessage
|
|
from api.models.capability_catalog import CapabilityCatalog
|
|
from api.models.capability_request import CapabilityRequest
|
|
from api.models.tpsc import TPSCCatalog, TPSCSnapshot, TPSCEntry
|
|
from api.models.service_catalog import (
|
|
ServiceCatalog,
|
|
ServiceThirdParty,
|
|
ServiceFirstParty,
|
|
ServiceCloud,
|
|
ServiceSelfHosted,
|
|
)
|
|
from api.models.doi_cache import DOICache
|
|
from api.models.token_event import TokenEvent
|
|
from api.models.interface_change import InterfaceChange
|
|
from api.models.workplan_launch_request import WorkplanLaunchRequest
|
|
from api.models.fabric_graph import FabricGraphImport, FabricGraphNode, FabricGraphEdge
|
|
from api.models.legacy_meter import LegacyInterface, LegacyInterfaceUsageBucket
|
|
from api.models.write_idempotency_key import WriteIdempotencyKey
|
|
from api.models.suggestion import (
|
|
Suggestion,
|
|
SuggestionNote,
|
|
SuggestionRelevanceBump,
|
|
SuggestionStage,
|
|
)
|
|
|
|
__all__ = [
|
|
"Base",
|
|
"Domain",
|
|
"DomainGoal", "DomainGoalStatus",
|
|
"Topic", "TopicStatus",
|
|
"ManagedRepo",
|
|
"RepoGoal", "RepoGoalStatus",
|
|
"Workplan",
|
|
"WorkplanDependency",
|
|
"Workstream",
|
|
"WorkstreamDependency",
|
|
"Task", "TaskStatus", "TaskPriority",
|
|
"Decision", "DecisionType", "DecisionStatus",
|
|
"Intake", "IntakeNote", "IntakeLane", "IntakeStatus", "IntakeOutcome",
|
|
"ProgressEvent",
|
|
"ExtensionPoint", "EPStatus",
|
|
"TechnicalDebt", "TDStatus",
|
|
"Contribution", "ContributionType", "ContributionStatus",
|
|
"SBOMSnapshot",
|
|
"SBOMEntry", "Ecosystem",
|
|
"AgentMessage",
|
|
"CapabilityCatalog",
|
|
"CapabilityRequest",
|
|
"TPSCCatalog", "TPSCSnapshot", "TPSCEntry",
|
|
"ServiceCatalog", "ServiceThirdParty", "ServiceFirstParty",
|
|
"ServiceCloud", "ServiceSelfHosted",
|
|
"DOICache",
|
|
"TokenEvent",
|
|
"InterfaceChange",
|
|
"WorkplanLaunchRequest",
|
|
"FabricGraphImport", "FabricGraphNode", "FabricGraphEdge",
|
|
"LegacyInterface", "LegacyInterfaceUsageBucket",
|
|
"WriteIdempotencyKey",
|
|
"Suggestion", "SuggestionNote", "SuggestionRelevanceBump", "SuggestionStage",
|
|
] |