// Package run 实现 workspace run profiles:每个 workspace 下可配置多个运行档 // (dev/prod/test),后端把每个 profile 作为长驻进程在 workspace 主工作区 // (main_path)拉起并托管其完整生命周期(start/stop/restart + 实时日志)。 // // 运行态(running/stopped/crashed)只在 RunSupervisor 内存中维护,不落库; // 仅最近一次运行的 last_started_at/last_exit_code/last_error 落行供历史回溯。 package run import ( "time" "github.com/google/uuid" ) // RunStatus 是 profile 的内存运行态(不持久化)。 type RunStatus string const ( StatusStopped RunStatus = "stopped" StatusRunning RunStatus = "running" StatusCrashed RunStatus = "crashed" ) // RunProfile 是一个 workspace 下的运行档(持久化实体)。 type RunProfile struct { ID uuid.UUID WorkspaceID uuid.UUID Slug string Name string Description string Command string Args []string EncryptedEnv []byte Enabled bool LastStartedAt *time.Time LastExitCode *int32 LastError string CreatedBy uuid.UUID CreatedAt time.Time UpdatedAt time.Time }