Skip to content

Commit 8e091a6

Browse files
committed
update ignore
1 parent c250936 commit 8e091a6

6 files changed

Lines changed: 52 additions & 9 deletions

File tree

Directory.Build.props

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434
<PropertyGroup>
3535
<!-- Generate XML documentation for API reference -->
3636
<GenerateDocumentationFile>true</GenerateDocumentationFile>
37+
<PackageReadmeFile Condition="'$(IsPackable)' == 'true' and '$(PackageReadmeFile)' == ''">README.md</PackageReadmeFile>
3738

3839
<!-- Explicit version: single source of truth for the entire solution.
3940
Bump this value via PR when preparing a new release.

Directory.Build.targets

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,4 +8,8 @@
88
<PackageReference Include="Microsoft.SourceLink.GitHub" PrivateAssets="all" />
99
</ItemGroup>
1010

11+
<ItemGroup Condition="'$(IsPackable)' == 'true' and '$(PackageReadmeFile)' == 'README.md' and Exists('$(MSBuildThisFileDirectory)README.md')">
12+
<None Include="$(MSBuildThisFileDirectory)README.md" Pack="true" PackagePath="" Visible="false" />
13+
</ItemGroup>
14+
1115
</Project>

docs/framework-capabilities.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"schemaVersion": "1.0",
3-
"updatedAtUtc": "2026-04-01T14:00:00Z",
3+
"updatedAtUtc": "2026-04-02T10:30:00Z",
44
"registry_status": "seeded-governed-baseline",
55
"migration_notes": "Both 'id' and 'capability_id' are currently preserved for migration compatibility. New consumers should use 'capability_id' as the canonical key while legacy readers transition from 'id'.",
66
"capabilities": [

docs/platform-status.md

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,13 @@
55
This page tracks the current docs-first governed platform snapshot for the active Fulora release line.
66

77
- Snapshot date: `2026-04-01`
8+
- Snapshot date: `2026-04-02`
89
- Release line: `0.2.x docs-first governance baseline`
910
- Stable channel status: `Pre-stable release governance baseline`
1011
- Capability registry version: `1.0-seeded`
11-
- Security gate status: `Capability policy taxonomy documented; runtime policy evaluator still in P2`
12-
- Observability gate status: `Bridge-first diagnostics shipped; runtime/framework unification still in P3`
13-
- Release gate status: `Docs-first release governance is active for roadmap, closeout snapshot, and layering checks`
12+
- Security gate status: `Capability taxonomy is documented and the runtime policy evaluator now governs host capability enforcement; plugin capability expansion remains Tier C and policy-gated`
13+
- Observability gate status: `Unified diagnostics event envelope and runtime/bridge sinks are shipped; broader framework event coverage remains incremental`
14+
- Release gate status: `Docs-first release governance, capability snapshots, dependency governance, and closeout evidence are active in Ci`
1415

1516
## Tier A
1617

@@ -43,7 +44,7 @@ Experimental capabilities without a stable cross-platform SLA:
4344

4445
- Linux remains primarily a dialog-first support story; embedded desktop parity is not part of the current baseline.
4546
- Android and iOS stay preview for Tier A bridge/kernel capabilities and are not yet Tier B-ready for framework services.
46-
- Capability policy enforcement for plugin powers is not fully implemented yet; the registry entries are the current contract seed for P2 hardening.
47+
- Capability policy enforcement is active for governed host capability paths; broader plugin power rollout remains experimental and Tier C.
4748
- Platform-specific caveats must continue to flow from `framework-capabilities.json` into release evidence and support messaging.
4849

4950
## Notes

src/Agibuild.Fulora.Avalonia/Agibuild.Fulora.Avalonia.csproj

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010
<PackageId>Agibuild.Fulora.Avalonia</PackageId>
1111
<Description>Cross-platform WebView control for Avalonia UI with native platform adapters (WKWebView on macOS/iOS, WebView2 on Windows, WebKitGTK on Linux, Android WebView). Provides embedded WebView, popup dialog, and OAuth authentication flows.</Description>
1212
<PackageTags>avalonia;webview;wkwebview;webview2;android;ios;cross-platform;macos;windows;linux</PackageTags>
13-
<PackageReadmeFile>README.md</PackageReadmeFile>
1413

1514
<!-- Build output (Agibuild.Fulora.dll) is included in lib/net10.0/ automatically. -->
1615
<GeneratePackageOnBuild>false</GeneratePackageOnBuild>
@@ -46,7 +45,6 @@
4645

4746
<ItemGroup>
4847
<None Include="buildTransitive/Agibuild.Fulora.Avalonia.targets" Pack="true" PackagePath="buildTransitive/Agibuild.Fulora.Avalonia.targets" />
49-
<None Include="..\..\README.md" Pack="true" PackagePath="" />
5048
</ItemGroup>
5149

5250
<!--

tests/Agibuild.Fulora.UnitTests/DocumentationGovernanceTests.cs

Lines changed: 41 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -387,6 +387,26 @@ public void Platform_status_declares_current_snapshot_tiers_and_known_limitation
387387
["known limitations"]);
388388
}
389389

390+
[Fact]
391+
public void Platform_status_reflects_shipped_policy_and_diagnostics_baseline()
392+
{
393+
var repoRoot = FindRepoRoot();
394+
var statusPath = Path.Combine(repoRoot, "docs", "platform-status.md");
395+
Assert.True(File.Exists(statusPath), "Missing docs/platform-status.md");
396+
397+
var content = File.ReadAllText(statusPath);
398+
Assert.DoesNotContain("still in P2", content, StringComparison.OrdinalIgnoreCase);
399+
Assert.DoesNotContain("still in P3", content, StringComparison.OrdinalIgnoreCase);
400+
AssertContainsAnyTokenGroupIgnoreCase(
401+
content,
402+
["runtime policy evaluator", "shipped"],
403+
["capability policy evaluator", "implemented"]);
404+
AssertContainsAnyTokenGroupIgnoreCase(
405+
content,
406+
["unified diagnostics", "event"],
407+
["diagnostics sink", "runtime", "bridge"]);
408+
}
409+
390410
[Fact]
391411
public void Index_declares_tier_registry_status_as_governed_truth_source()
392412
{
@@ -545,7 +565,8 @@ public void Legacy_spec_skill_assets_are_removed()
545565
{
546566
var repoRoot = FindRepoRoot();
547567
var skillsPath = Path.Combine(repoRoot, ".github", "skills");
548-
Assert.True(Directory.Exists(skillsPath), "Missing .github/skills directory under test.");
568+
if (!Directory.Exists(skillsPath))
569+
return;
549570

550571
var matches = Directory.EnumerateFileSystemEntries(skillsPath, LegacySpecAssetPattern, SearchOption.TopDirectoryOnly);
551572
Assert.Empty(matches);
@@ -556,7 +577,8 @@ public void Legacy_prompt_assets_are_removed()
556577
{
557578
var repoRoot = FindRepoRoot();
558579
var promptsPath = Path.Combine(repoRoot, ".github", "prompts");
559-
Assert.True(Directory.Exists(promptsPath), "Missing .github/prompts directory under test.");
580+
if (!Directory.Exists(promptsPath))
581+
return;
560582

561583
var matches = Directory.EnumerateFileSystemEntries(promptsPath, LegacyPromptAssetPattern, SearchOption.TopDirectoryOnly);
562584
Assert.Empty(matches);
@@ -694,6 +716,23 @@ public void Historical_design_doc_is_not_exposed_as_primary_navigation_entry()
694716
Assert.DoesNotContain(historicalDesignDoc, tocContent, StringComparison.OrdinalIgnoreCase);
695717
}
696718

719+
[Fact]
720+
public void Packable_projects_define_shared_package_readme_metadata()
721+
{
722+
var repoRoot = FindRepoRoot();
723+
var propsPath = Path.Combine(repoRoot, "Directory.Build.props");
724+
var targetsPath = Path.Combine(repoRoot, "Directory.Build.targets");
725+
Assert.True(File.Exists(propsPath), "Missing Directory.Build.props");
726+
Assert.True(File.Exists(targetsPath), "Missing Directory.Build.targets");
727+
728+
var props = File.ReadAllText(propsPath);
729+
var targets = File.ReadAllText(targetsPath);
730+
731+
Assert.Contains("PackageReadmeFile", props, StringComparison.Ordinal);
732+
AssertContainsAllTokens(targets, "README.md", "Pack=\"true\"", "PackagePath=\"\"");
733+
Assert.Contains("IsPackable", targets, StringComparison.Ordinal);
734+
}
735+
697736
private static string FindRepoRoot()
698737
{
699738
var dir = new DirectoryInfo(AppContext.BaseDirectory);

0 commit comments

Comments
 (0)