- Add ConsoleSessionStore for managing console session state including tenants, profile, and token information. - Create OperatorContextService to manage operator context for orchestrator actions. - Implement OperatorMetadataInterceptor to enrich HTTP requests with operator context metadata. - Develop ConsoleProfileComponent to display user profile and session details, including tenant information and access tokens. - Add corresponding HTML and SCSS for ConsoleProfileComponent to enhance UI presentation. - Write unit tests for ConsoleProfileComponent to ensure correct rendering and functionality.
		
			
				
	
	
		
			54 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			54 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| #!/usr/bin/env python3
 | |
| """Ensure CLI parity matrix contains no outstanding blockers before release."""
 | |
| from __future__ import annotations
 | |
| 
 | |
| import pathlib
 | |
| import re
 | |
| import sys
 | |
| 
 | |
| REPO_ROOT = pathlib.Path(__file__).resolve().parents[2]
 | |
| PARITY_DOC = REPO_ROOT / "docs/cli-vs-ui-parity.md"
 | |
| 
 | |
| BLOCKERS = {
 | |
|     "🟥": "blocking gap",
 | |
|     "❌": "missing feature",
 | |
|     "🚫": "unsupported",
 | |
| }
 | |
| WARNINGS = {
 | |
|     "🟡": "partial support",
 | |
|     "⚠️": "warning",
 | |
| }
 | |
| 
 | |
| 
 | |
| def main() -> int:
 | |
|     if not PARITY_DOC.exists():
 | |
|         print(f"❌ Parity matrix not found at {PARITY_DOC}", file=sys.stderr)
 | |
|         return 1
 | |
|     text = PARITY_DOC.read_text(encoding="utf-8")
 | |
|     blockers: list[str] = []
 | |
|     warnings: list[str] = []
 | |
|     for line in text.splitlines():
 | |
|         for symbol, label in BLOCKERS.items():
 | |
|             if symbol in line:
 | |
|                 blockers.append(f"{label}: {line.strip()}")
 | |
|         for symbol, label in WARNINGS.items():
 | |
|             if symbol in line:
 | |
|                 warnings.append(f"{label}: {line.strip()}")
 | |
|     if blockers:
 | |
|         print("❌ CLI parity gate failed — blocking items present:", file=sys.stderr)
 | |
|         for item in blockers:
 | |
|             print(f"  - {item}", file=sys.stderr)
 | |
|         return 1
 | |
|     if warnings:
 | |
|         print("⚠️ CLI parity gate warnings detected:", file=sys.stderr)
 | |
|         for item in warnings:
 | |
|             print(f"  - {item}", file=sys.stderr)
 | |
|         print("Treat warnings as failures until parity matrix is fully green.", file=sys.stderr)
 | |
|         return 1
 | |
|     print("✅ CLI parity matrix has no blocking or warning entries.")
 | |
|     return 0
 | |
| 
 | |
| 
 | |
| if __name__ == "__main__":
 | |
|     raise SystemExit(main())
 |