feat(pages): pull latest by project and keep a single edge release

Agents now treat pages_project_id as the stable anchor and fetch the
control-plane active package via project latest APIs, so activating a
deployment updates edges without republishing main config. Local roots use
projects/{id}/current, only the newest release is retained after a successful
switch, hash/package races retry, and per-project failures no longer block
siblings.
This commit is contained in:
ryan
2026-07-17 17:43:40 +08:00
parent a0fcf9f627
commit ce736e2de4
21 changed files with 871 additions and 219 deletions
+5 -2
View File
@@ -15,9 +15,12 @@ const (
nodeIDRandomBytes = 8
)
// PagesDeployment records a Pages release referenced by the active config.
// PagesDeployment records a Pages project tracked by the agent and the last
// applied package hash for that project's active deployment.
// ProjectID is the stable identity; DeploymentID/Hash follow control-plane "latest".
type PagesDeployment struct {
DeploymentID uint `json:"deployment_id"`
ProjectID uint `json:"project_id"`
DeploymentID uint `json:"deployment_id,omitempty"`
Hash string `json:"hash"`
Checksum string `json:"checksum,omitempty"`
}