Forge
csharp3407750f
1namespace AgentForge.Abstractions;
2
3/// <summary>Human-layer release row (FORGE-ADR-0032 / 0033).</summary>
4public sealed record ForgeReleaseListItem(
5 string Tag,
6 DateTimeOffset? PublishedAt,
7 bool IsPrerelease,
8 string? NotesUrl = null,
9 string? TargetPlatform = null,
10 string? PackageFormat = null);
11
12/// <summary>View state for repo releases tab — mirrors org catalog groupStack (ADR-0027/0028).</summary>
13public sealed record ForgeReleaseListViewContext(
14 string RepoName,
15 string ListBasePath,
16 IReadOnlyList<string> GroupStack,
17 int EditorRowCount = 0);
18
19/// <summary>Grouping axis for release lists (FORGE-ADR-0033).</summary>
20public interface IForgeReleaseGroupingAxis : IForgeGroupingAxis<ForgeReleaseListItem>;
21
22/// <summary>Release list grouping service — renders via ViewShell <c>ForgeViewGroupedList</c>.</summary>
23public interface IForgeReleaseListGrouping
24{
25 IReadOnlyList<string> ParseGroupStack(string? groupStackQuery);
26
27 string BuildListUrl(
28 in ForgeReleaseListViewContext context,
29 IReadOnlyList<string>? groupStack = null);
30
31 string RenderToolbar(in ForgeReleaseListViewContext context);
32
33 string RenderListBody(
34 IReadOnlyList<ForgeReleaseListItem> releases,
35 in ForgeReleaseListViewContext context);
36}
37
View only · write via MCP/CIDE