Merge remote-tracking branch 'origin/main' into LPM-115

This commit is contained in:
Robin Olsen
2026-03-23 20:18:47 +01:00
105 changed files with 6303 additions and 3758 deletions

View File

@@ -4,7 +4,7 @@ import (
"context"
"log/slog"
"go.mongodb.org/mongo-driver/bson/primitive"
"go.mongodb.org/mongo-driver/v2/bson"
)
type App struct {
@@ -58,13 +58,22 @@ type IssueService interface {
RemoveDependency(ctx context.Context, issueID, dependsOnID string, actor string) error
GetDependencies(ctx context.Context, issueID string) ([]*Issue, error)
GetDependents(ctx context.Context, issueID string) ([]*Issue, error)
AddSprint(ctx context.Context) (int, error)
RemoveSprint(ctx context.Context, sprintNum int) error
GetSprints(ctx context.Context) ([]int, error)
GetBacklogSprint(ctx context.Context) (int, error)
GetIssuesBySprint(ctx context.Context, sprintNum int) ([]*Issue, error)
GetIssuesNotInAnySprint(ctx context.Context) ([]*Issue, error)
AddIssueToSprint(ctx context.Context, issueID string, sprintNum int) error
RemoveIssueFromSprint(ctx context.Context, issueID string, sprintNum int) error
}
type StatsService interface {
Load(ctx context.Context) error
Save(ctx context.Context) error
GetStatistics() (Statistics, error)
GetParticipantID() primitive.ObjectID
GetParticipantID() bson.ObjectID
RecordTaskRun(ctx context.Context, run TaskRunMetrics) error
RecordIntroQuestionnaireAnswers(answers map[string]any) error
}

View File

@@ -35,12 +35,11 @@ type (
// Status constants
const (
StatusOpen = beads.StatusOpen
StatusInProgress = beads.StatusInProgress
StatusBlocked = beads.StatusBlocked
StatusDeferred = beads.StatusDeferred
StatusClosed = beads.StatusClosed
StatusReadyToSprint Status = "ready_to_sprint"
StatusOpen = beads.StatusOpen
StatusInProgress = beads.StatusInProgress
StatusBlocked = beads.StatusBlocked
StatusDeferred = beads.StatusDeferred
StatusClosed = beads.StatusClosed
)
// IssueType constants

View File

@@ -3,14 +3,14 @@ package models
import (
"time"
"go.mongodb.org/mongo-driver/bson/primitive"
"go.mongodb.org/mongo-driver/v2/bson"
)
type Statistics struct {
ID primitive.ObjectID `bson:"_id" json:"id"`
StartTime time.Time `bson:"start_time" json:"start_time"`
EndTime time.Time `bson:"end_time" json:"end_time"`
DurationMs int64 `bson:"duration_ms" json:"duration_ms"`
ID bson.ObjectID `bson:"_id" json:"id"`
StartTime time.Time `bson:"start_time" json:"start_time"`
EndTime time.Time `bson:"end_time" json:"end_time"`
DurationMs int64 `bson:"duration_ms" json:"duration_ms"`
LastInterfaceType InterfaceType `bson:"last_interface_type" json:"last_interface_type"`
TaskRuns int `bson:"task_runs" json:"task_runs"`
@@ -38,12 +38,12 @@ type Statistics struct {
}
type TaskMetricsFile struct {
ID primitive.ObjectID `bson:"_id" json:"id"`
ParticipantID primitive.ObjectID `bson:"participant_id" json:"participant_id"`
TaskName string `bson:"task_name" json:"task_name"`
UpdatedAt time.Time `bson:"updated_at" json:"updated_at"`
Summary TaskStatsSummary `bson:"summary" json:"summary"`
Runs []TaskRunMetrics `bson:"runs" json:"runs"`
ID bson.ObjectID `bson:"_id" json:"id"`
ParticipantID bson.ObjectID `bson:"participant_id" json:"participant_id"`
TaskName string `bson:"task_name" json:"task_name"`
UpdatedAt time.Time `bson:"updated_at" json:"updated_at"`
Summary TaskStatsSummary `bson:"summary" json:"summary"`
Runs []TaskRunMetrics `bson:"runs" json:"runs"`
}
type TaskStatsSummary struct {

View File

@@ -3,7 +3,7 @@ package models
import (
"context"
"github.com/charmbracelet/huh"
"charm.land/huh/v2"
)
type Tasker interface {