Epic: Output Rendering Pipeline Integration — Wire Commands to OutputSession Framework #936
Labels
No labels
auto/needs-reevaluation
controller-managed
auto/blocked-by-deps
auto/ci-timeout
auto/claimed-implementer
auto/claimed-merge
auto/claimed-reviewer
auto/driver-down
auto/invariant-violation
auto/last-attempt-tier-0
auto/last-attempt-tier-1
auto/last-attempt-tier-2
auto/last-attempt-tier-min
Automation Tracking
auto/needs-conflict-resolution
auto/needs-implementer
auto/postmortem
auto/ready-to-merge
auto/restart-throttled
auto/revert
auto/sentinel
auto/stale-inactivity
auto/unstable
Blocked
Bounty
$100
Bounty
$1000
Bounty
$10000
Bounty
$20
Bounty
$2000
Bounty
$250
Bounty
$50
Bounty
$500
Bounty
$5000
Bounty
$750
MoSCoW
Could have
MoSCoW
Must have
MoSCoW
Should have
Needs Feedback
Points
1
Points
13
Points
2
Points
21
Points
3
Points
34
Points
5
Points
55
Points
8
Points
88
Priority
Backlog
Priority
CI Blocker
Priority
Critical
Priority
High
Priority
Low
Priority
Medium
Signed-off: Owner
Signed-off: Scrum Master
Signed-off: Tech Lead
Spike
State
Completed
State
Duplicate
State
In Progress
State
In Review
State
Paused
State
Unverified
State
Verified
State
Wont Do
Type
Automation
Type
Bug
Type
Discussion
Type
Documentation
Type
Epic
Type
Feature
Type
Legendary
Type
Refactor
Type
Support
Type
Task
Type
Testing
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Blocks
Depends on
#945 Legendary: Specification Alignment — Close All Gaps Between Implementation and Specification
cleveragents/cleveragents-core
#1879 UAT: JSON/YAML envelope
messages field is an empty dict {} instead of spec-required list of {level, text} objects
cleveragents/cleveragents-core
#1880 TDD: JSON/YAML envelope
messages field is an empty dict {} instead of spec-required list of {level, text} objects
cleveragents/cleveragents-core
#1944 UAT: JSON/YAML envelope
timing field uses wrong structure — spec requires {duration_ms: N} but implementation produces {start_time, end_time, duration}
cleveragents/cleveragents-core
#1949 TDD: JSON/YAML envelope
timing field uses wrong structure — spec requires {duration_ms: N} but implementation produces {start_time, end_time, duration}
cleveragents/cleveragents-core
#2080 UAT:
agents skill add Tool Sources panel missing "Details" column — shows only Source and Count
cleveragents/cleveragents-core
#1468 UAT:
agents plan use rich output missing spec-required structured panels (Plan Created, Inputs, Actors, Automation, Context, Next Steps)
cleveragents/cleveragents-core
#1473 UAT:
agents plan cancel rich output is a one-liner — missing spec-required structured panels (Plan Cancelled, Sandbox, Child Plans, Recovery)
cleveragents/cleveragents-core
#1499 UAT:
agents actor add rich output missing spec-required Type, Config, Capabilities, and Tools panels
cleveragents/cleveragents-core
#1735 UAT:
agents config list incorrectly masks non-secret config values containing "token" or "key" in key name
cleveragents/cleveragents-core
#1814 UAT:
agents project list rich output missing spec-required Remote, Active Plans columns and Summary panel
cleveragents/cleveragents-core
#1827 UAT:
format_output() color format returns plain text without ANSI codes — spec requires colored output
cleveragents/cleveragents-core
#1839 UAT:
agents config list <PATTERN> includes false positive keys when pattern is a glob (e.g. plan.* matches sandbox.checkpoint.max-per-plan)
cleveragents/cleveragents-core
#1877 UAT:
agents project show rich output missing spec-required panels (Active Plans, Validations, Context, Indexing Status) and shows resource IDs instead of names
cleveragents/cleveragents-core
#1878 UAT:
agents resource add rich output missing spec-required structured panels (Resource, Auto-discovered Children, Capabilities)
cleveragents/cleveragents-core
#1935 UAT:
agents resource remove does not cascade-delete child resources and blocks on DAG edges instead of project links
cleveragents/cleveragents-core
#1945 UAT:
agents resource type add rich output uses single combined panel instead of spec-required separate panels, and --update flag not implemented
cleveragents/cleveragents-core
#1982 UAT:
CLEVERAGENTS_FORMAT environment variable not supported — spec requires it as second-highest priority in format resolution chain
cleveragents/cleveragents-core
#1986 UAT:
agents project delete rich output missing spec-required structured panels (Deletion Summary, Index Cleanup, Backups)
cleveragents/cleveragents-core
#2047 UAT:
agents resource type add --update does not overwrite existing type — aborts with "Update mode is not yet fully supported"
cleveragents/cleveragents-core
#2053 UAT:
SkillService.add_skill sets description to empty string when omitted, causing Pydantic ValidationError instead of a user-friendly error
cleveragents/cleveragents-core
#2057 UAT:
SkillService.get_dependents() always returns empty actors list — skill remove dependency check never warns about referencing actors
cleveragents/cleveragents-core
#2062 UAT:
agents resource type show rich output uses a single flat panel instead of spec-required separate structured panels
cleveragents/cleveragents-core
#2063 UAT:
--data-dir and --config-path global CLI flags are missing from agents command — spec requires them as top-level options
cleveragents/cleveragents-core
#2067 UAT:
agents skill tools --format json omits read_only, writes, and checkpoint fields for non-inline tools
cleveragents/cleveragents-core
#2072 UAT:
-p shorthand for --project missing from agents invariant add and agents invariant list — spec requires it
cleveragents/cleveragents-core
#2075 UAT:
core.format config key is registered but never applied — setting it has no effect on CLI output format
cleveragents/cleveragents-core
#2077 UAT:
SkillCapabilitySummary missing requires_approval field — skill show capability summary panel incomplete
cleveragents/cleveragents-core
#2082 UAT:
agents project clean is an unimplemented stub — outputs "not yet implemented" and aborts instead of cleaning project cache
cleveragents/cleveragents-core
#2087 UAT: All
agents skill commands produce raw JSON output without the spec-required {command, status, exit_code, data, timing, messages} envelope
cleveragents/cleveragents-core
#2092 UAT:
agents invariant list --effective not restricted to --plan scope — spec requires --effective only with --plan
cleveragents/cleveragents-core
#2094 UAT:
agents invariant add silently defaults to --global when no scope flag is provided — spec requires at least one scope flag
cleveragents/cleveragents-core
#2095 UAT: Child plan spawning does not propagate parent plan's effective invariant set — spec requires inheritance
cleveragents/cleveragents-core
#2102 UAT:
merge_invariants() and InvariantSet.merge() lack action_invariants parameter — inconsistent with four-scope architecture
cleveragents/cleveragents-core
#2104 UAT:
agents invariant add rich output uses plain text lines instead of spec-required panel box format
cleveragents/cleveragents-core
#2108 UAT:
agents skill refresh does not actually refresh MCP tools — stub implementation with TODO comment
cleveragents/cleveragents-core
#2120 UAT:
--format color renders plain text without ANSI color codes — spec requires ANSI-colored output
cleveragents/cleveragents-core
#2121 UAT: Global CLI options
--data-dir, --config-path, and -v (verbosity) are missing from main_callback() — spec requires them as global options
cleveragents/cleveragents-core
#2127 UAT:
agents diagnostics missing health checks for text index (tantivy), vector index (faiss), and graph store — spec requires these checks
cleveragents/cleveragents-core
#2128 UAT:
--format help text on version, info, and diagnostics commands omits table and color formats — spec defines 6 valid formats
cleveragents/cleveragents-core
#2133 UAT:
--format is not a global option — spec requires agents --format <fmt> <command> syntax but only per-command agents <command> --format <fmt> works
cleveragents/cleveragents-core
#2908 UAT Bug:
--format flag is per-command rather than global — spec requires a single global --format option on the root CLI callback
cleveragents/cleveragents-core
#2921 UAT:
format_output() silently falls back to JSON for rich format — spec requires styled terminal output with Rich library components
cleveragents/cleveragents-core
#2998 UAT:
agents validation attach args format mismatch — spec shows --coverage-threshold 90 named options but implementation requires coverage_threshold=90 positional key=value pairs
cleveragents/cleveragents-core
#3998 UAT: Global
--format flag not implemented at top-level CLI — spec requires agents --format table <subcommand> syntax
cleveragents/cleveragents-core
#3999 UAT:
format_output() with rich format silently falls back to JSON — should use rich/color renderer
cleveragents/cleveragents-core
#4004 UAT:
render_error() JSON/YAML output goes to stdout instead of stderr — error output should be on stderr
cleveragents/cleveragents-core
#8987 refactor(output): Refactor system, session, and project CLI commands to use OutputSession
cleveragents/cleveragents-core
#8996 refactor(output): Refactor actor, plan, and resource/tool/skill/config CLI commands to use OutputSession
cleveragents/cleveragents-core
#8997 feat(output): Implement functional Rich materializer with rich Live Display integration
cleveragents/cleveragents-core
#8998 feat(output): Align output envelope to spec, implement streaming materialization, and add output format tests
cleveragents/cleveragents-core
Reference
cleveragents/cleveragents-core#936
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Background and Context
The specification defines an Output Rendering Framework (spec §Output Rendering Framework) with a formal architecture: OutputSession, Element Handles, Element Events, Materialization Strategies, ElementRenderer Protocol, RendererRegistry, and format-specific renderers. Every CLI command must produce structured output matching the spec envelope:
{command, status, exit_code, data, timing, messages}.The current implementation has:
OutputSessionwith element handle lifecycle (functional incli/output/session.py)PanelHandle,TableHandle,StatusHandle,ProgressHandleHowever:
format_output()path; the OutputSession framework is not integratedrichlibrary integration{command, session_id, elements, exit_code, timing, metadata}instead of{command, status, exit_code, data, timing, messages}Note: #884 covers envelope alignment and #917 covers RendererRegistry. This Epic coordinates the full integration.
Expected Behavior
All CLI commands must produce output through the OutputSession pipeline, using the spec-defined envelope format, with a functional Rich materializer for interactive terminal use.
Acceptance Criteria
OutputSession(not directformat_output()){command, status, exit_code, data, timing, messages}richlibrary for live terminal rendering (panels, tables, spinners, progress bars)--streamcommandsRendererRegistrydispatches element types to per-format renderers (coordinates with #917)Subtasks
OutputSessioninstead offormat_output()— system commands (version, info, diagnostics, init)richLive Display integration--streamnox -s coverage_reportnox(all default sessions), fix any errorsDefinition of Done
This epic is complete when all child issues are closed AND every CLI command produces structured output through the OutputSession framework, the Rich materializer provides interactive terminal rendering, and all output formats match the specification examples.
Dependency Links
Parent Legendary: cleverthis/cleveragents#3 — Core Functionality
Blocked by:
Coordinates with:
agents plan userich output missing spec-required structured panels (Plan Created, Inputs, Actors, Automation, Context, Next Steps) #1468agents plan userich output missing spec-required structured panels (Plan Created, Inputs, Actors, Automation, Context, Next Steps)agents plan cancelrich output is a one-liner — missing spec-required structured panels (Plan Cancelled, Sandbox, Child Plans, Recovery) #1473agents plan cancelrich output is a one-liner — missing spec-required structured panels (Plan Cancelled, Sandbox, Child Plans, Recovery)agents plan cancelrich output is a one-liner — missing spec-required structured panels (Plan Cancelled, Sandbox, Child Plans, Recovery) #1473agents plan userich output missing spec-required structured panels (Plan Created, Inputs, Actors, Automation, Context, Next Steps) #1468agents actor addrich output missing spec-requiredType,Config,Capabilities, andToolspanels #1499agents actor addrich output missing spec-requiredType,Config,Capabilities, andToolspanelsagents actor addrich output missing spec-requiredType,Config,Capabilities, andToolspanels #1499agents session listJSON output missingnamefield per session andsummarysection — spec-required fields absent #1508agents session listrich output missingNamecolumn and Summary panel fields — spec-required format not implemented #1511agents session listrich output missingNamecolumn and Summary panel fields — spec-required format not implemented #1511agents session listJSON output missingnamefield per session andsummarysection — spec-required fields absent #1508agents plan listrich output missing spec-required Filters panel, Summary panel, Elapsed column, and success message #1522agents actor removerich output is a one-liner — missing spec-requiredActor Removed,Impact, andCleanuppanels #1524agents actor listrich output missing spec-requiredSummarypanel and✓ OK N actors listedsuccess message #1525agents plan listrich output missing spec-required Filters panel, Summary panel, Elapsed column, and success message #1522agents actor listrich output missing spec-requiredSummarypanel and✓ OK N actors listedsuccess message #1525agents actor removerich output is a one-liner — missing spec-requiredActor Removed,Impact, andCleanuppanels #1524Label compliance fix applied:
State/In Progresswith valid labelState/In progressState/In Progress(capital P) is an orphaned label that no longer exists in the repository's label list. The correct label isState/In progress(lowercase p, ID: 1322).Automated by CleverAgents Bot
Supervisor: Backlog Grooming | Agent: ca-backlog-groomer
agents config listincorrectly masks non-secret config values containing "token" or "key" in key name #1735agents config listincorrectly masks non-secret config values containing "token" or "key" in key nameagents project listrich output missing spec-requiredRemote,Active Planscolumns andSummarypanel #1814format_output()colorformat returns plain text without ANSI codes — spec requires colored output #1827agents config list <PATTERN>includes false positive keys when pattern is a glob (e.g.plan.*matchessandbox.checkpoint.max-per-plan) #1839format_output()colorformat returns plain text without ANSI codes — spec requires colored outputagents project listrich output missing spec-requiredRemote,Active Planscolumns andSummarypanelNamespacedProjectModel.to_domain()silently dropsinvariants_jsonandinvariant_actorcolumns — project invariants lost on read #1844agents config list <PATTERN>includes false positive keys when pattern is a glob (e.g.plan.*matchessandbox.checkpoint.max-per-plan)agents project showrich output missing spec-required panels (Active Plans, Validations, Context, Indexing Status) and shows resource IDs instead of names #1877agents resource addrich output missing spec-required structured panels (Resource, Auto-discovered Children, Capabilities) #1878messagesfield is an empty dict{}instead of spec-required list of{level, text}objects #1879messagesfield is an empty dict{}instead of spec-required list of{level, text}objects #1880agents project showrich output missing spec-required panels (Active Plans, Validations, Context, Indexing Status) and shows resource IDs instead of namesagents resource addrich output missing spec-required structured panels (Resource, Auto-discovered Children, Capabilities)messagesfield is an empty dict{}instead of spec-required list of{level, text}objectsmessagesfield is an empty dict{}instead of spec-required list of{level, text}objectsagents resource removedoes not cascade-delete child resources and blocks on DAG edges instead of project links #1935timingfield uses wrong structure — spec requires{duration_ms: N}but implementation produces{start_time, end_time, duration}#1944agents resource type addrich output uses single combined panel instead of spec-required separate panels, and--updateflag not implemented #1945agents resource removedoes not cascade-delete child resources and blocks on DAG edges instead of project linkstimingfield uses wrong structure — spec requires{duration_ms: N}but implementation produces{start_time, end_time, duration}#1949timingfield uses wrong structure — spec requires{duration_ms: N}but implementation produces{start_time, end_time, duration}timingfield uses wrong structure — spec requires{duration_ms: N}but implementation produces{start_time, end_time, duration}agents resource type addrich output uses single combined panel instead of spec-required separate panels, and--updateflag not implementedCLEVERAGENTS_FORMATenvironment variable not supported — spec requires it as second-highest priority in format resolution chain #1982agents project deleterich output missing spec-required structured panels (Deletion Summary, Index Cleanup, Backups) #1986CLEVERAGENTS_FORMATenvironment variable not supported — spec requires it as second-highest priority in format resolution chainagents config set/getwith invalid key or value shows cryptic "INTERNAL" error instead of user-friendly message #1995agents project deleterich output missing spec-required structured panels (Deletion Summary, Index Cleanup, Backups)agents config set/getwith invalid key or value shows cryptic "INTERNAL" error instead of user-friendly message #1995agents project deleterich output missing spec-required structured panels (Deletion Summary, Index Cleanup, Backups) #1986agents resource type add --updatedoes not overwrite existing type — aborts with "Update mode is not yet fully supported" #2047agents resource type add --updatedoes not overwrite existing type — aborts with "Update mode is not yet fully supported"agents resource type add --updatedoes not overwrite existing type — aborts with "Update mode is not yet fully supported" #2047SkillService.add_skillsetsdescriptionto empty string when omitted, causing PydanticValidationErrorinstead of a user-friendly error #2053SkillService.add_skillsetsdescriptionto empty string when omitted, causing PydanticValidationErrorinstead of a user-friendly errorSkillService.get_dependents()always returns empty actors list —skill removedependency check never warns about referencing actors #2057SkillService.get_dependents()always returns empty actors list —skill removedependency check never warns about referencing actorsagents resource type showrich output uses a single flat panel instead of spec-required separate structured panels #2062agents resource type showrich output uses a single flat panel instead of spec-required separate structured panels #2062--data-dirand--config-pathglobal CLI flags are missing fromagentscommand — spec requires them as top-level options #2063agents resource type showrich output uses a single flat panel instead of spec-required separate structured panelsagents skill tools --format jsonomitsread_only,writes, andcheckpointfields for non-inline tools #2067--data-dirand--config-pathglobal CLI flags are missing fromagentscommand — spec requires them as top-level options-pshorthand for--projectmissing fromagents invariant addandagents invariant list— spec requires it #2072agents skill tools --format jsonomitsread_only,writes, andcheckpointfields for non-inline tools-pshorthand for--projectmissing fromagents invariant addandagents invariant list— spec requires itcore.formatconfig key is registered but never applied — setting it has no effect on CLI output format #2075SkillCapabilitySummarymissingrequires_approvalfield —skill showcapability summary panel incomplete #2077core.formatconfig key is registered but never applied — setting it has no effect on CLI output formatSkillCapabilitySummarymissingrequires_approvalfield —skill showcapability summary panel incompleteSkillCapabilitySummarymissingrequires_approvalfield —skill showcapability summary panel incomplete #2077agents skill addTool Sources panel missing "Details" column — shows only Source and Count #2080agents skill addTool Sources panel missing "Details" column — shows only Source and Countagents project cleanis an unimplemented stub — outputs "not yet implemented" and aborts instead of cleaning project cache #2082agents project cleanis an unimplemented stub — outputs "not yet implemented" and aborts instead of cleaning project cacheagents skillcommands produce raw JSON output without the spec-required{command, status, exit_code, data, timing, messages}envelope #2087agents skillcommands produce raw JSON output without the spec-required{command, status, exit_code, data, timing, messages}envelopeagents skillcommands produce raw JSON output without the spec-required{command, status, exit_code, data, timing, messages}envelope #2087agents invariant list --effectivenot restricted to--planscope — spec requires--effectiveonly with--plan#2092agents invariant list --effectivenot restricted to--planscope — spec requires--effectiveonly with--planagents invariant addsilently defaults to--globalwhen no scope flag is provided — spec requires at least one scope flag #2094agents invariant addsilently defaults to--globalwhen no scope flag is provided — spec requires at least one scope flag--formatflag missing from top-level CLI —agents --format table session listfails with "No such option" #2099CLEVERAGENTS_FORMATenvironment variable is not checked by CLI commands — format resolution chain is incomplete #2100format_output()renderscolorformat as plain text — no ANSI color codes emitted #2101--formatflag missing from top-level CLI —agents --format table session listfails with "No such option" #2099merge_invariants()andInvariantSet.merge()lackaction_invariantsparameter — inconsistent with four-scope architecture #2102format_output()rendersrichformat as JSON — should use rich terminal rendering #2103agents invariant addrich output uses plain text lines instead of spec-required panel box format #2104merge_invariants()andInvariantSet.merge()lackaction_invariantsparameter — inconsistent with four-scope architectureagents invariant addrich output uses plain text lines instead of spec-required panel box formatagents skill refreshdoes not actually refresh MCP tools — stub implementation with TODO comment #2108agents skill refreshdoes not actually refresh MCP tools — stub implementation with TODO comment--format colorrenders plain text without ANSI color codes — spec requires ANSI-colored output #2120--data-dir,--config-path, and-v(verbosity) are missing frommain_callback()— spec requires them as global options #2121--format colorrenders plain text without ANSI color codes — spec requires ANSI-colored output--format colorrenders plain text without ANSI color codes — spec requires ANSI-colored output #2120--data-dir,--config-path, and-v(verbosity) are missing frommain_callback()— spec requires them as global options--data-dir,--config-path, and-v(verbosity) are missing frommain_callback()— spec requires them as global options #2121agents diagnosticsmissing health checks for text index (tantivy), vector index (faiss), and graph store — spec requires these checks #2127--formathelp text onversion,info, anddiagnosticscommands omitstableandcolorformats — spec defines 6 valid formats #2128agents diagnosticsmissing health checks for text index (tantivy), vector index (faiss), and graph store — spec requires these checks--formathelp text onversion,info, anddiagnosticscommands omitstableandcolorformats — spec defines 6 valid formats--formatis not a global option — spec requiresagents --format <fmt> <command>syntax but only per-commandagents <command> --format <fmt>works #2133--formatis not a global option — spec requiresagents --format <fmt> <command>syntax but only per-commandagents <command> --format <fmt>works--formatflag is per-command rather than global — spec requires a single global--formatoption on the root CLI callback #2908--formatflag is per-command rather than global — spec requires a single global--formatoption on the root CLI callbackformat_output()silently falls back to JSON forrichformat — spec requires styled terminal output with Rich library components #2921format_output()silently falls back to JSON forrichformat — spec requires styled terminal output with Rich library componentsagents validation attachargs format mismatch — spec shows--coverage-threshold 90named options but implementation requirescoverage_threshold=90positional key=value pairs #2998agents validation attachargs format mismatch — spec shows--coverage-threshold 90named options but implementation requirescoverage_threshold=90positional key=value pairs--formatflag not implemented at top-level CLI — spec requiresagents --format table <subcommand>syntax #3998format_output()withrichformat silently falls back to JSON — should use rich/color renderer #3999--formatflag not implemented at top-level CLI — spec requiresagents --format table <subcommand>syntaxformat_output()withrichformat silently falls back to JSON — should use rich/color rendererrender_error()JSON/YAML output goes to stdout instead of stderr — error output should be on stderr #4004render_error()JSON/YAML output goes to stdout instead of stderr — error output should be on stderr