Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type FileSystemRegistry ¶
type FileSystemRegistry struct {
// contains filtered or unexported fields
}
FileSystemRegistry implements Registry using the filesystem at ~/.grove/hooks/sessions/
func NewFileSystemRegistry ¶
func NewFileSystemRegistry() (*FileSystemRegistry, error)
func (*FileSystemRegistry) Find ¶
func (r *FileSystemRegistry) Find(jobID string) (*SessionMetadata, error)
Find searches for a session by Grove job ID in the SessionMetadata.
func (*FileSystemRegistry) IsAlive ¶
func (r *FileSystemRegistry) IsAlive(sessionID string) (bool, error)
IsAlive checks if a session with the given ID is still running.
func (*FileSystemRegistry) Register ¶
func (r *FileSystemRegistry) Register(metadata SessionMetadata) error
Register creates the tracking files for a live session.
type Registry ¶
type Registry interface {
Register(metadata SessionMetadata) error
IsAlive(sessionID string) (bool, error)
Find(jobID string) (*SessionMetadata, error)
}
Registry defines the interface for managing live session tracking.
type SessionMetadata ¶
type SessionMetadata struct {
SessionID string `json:"session_id"`
ClaudeSessionID string `json:"claude_session_id,omitempty"` // For Claude provider (or native agent ID)
Provider string `json:"provider"` // "claude" or "codex"
PID int `json:"pid"`
Repo string `json:"repo,omitempty"`
Branch string `json:"branch,omitempty"`
TmuxKey string `json:"tmux_key,omitempty"`
WorkingDirectory string `json:"working_directory"`
User string `json:"user"`
StartedAt time.Time `json:"started_at"`
TranscriptPath string `json:"transcript_path,omitempty"`
Type string `json:"type,omitempty"`
JobTitle string `json:"job_title,omitempty"`
PlanName string `json:"plan_name,omitempty"`
JobFilePath string `json:"job_file_path,omitempty"`
}
SessionMetadata is the data stored on disk to track a live session.
Click to show internal directories.
Click to hide internal directories.