Skip to content

(3.3.3) Replace shared TUI references with host-neutral review view references#293

Draft
leynos wants to merge 22 commits into
mainfrom
3-3-3-replace-shared-tui-references-with-host-neutral-references
Draft

(3.3.3) Replace shared TUI references with host-neutral review view references#293
leynos wants to merge 22 commits into
mainfrom
3-3-3-replace-shared-tui-references-with-host-neutral-references

Conversation

@leynos

@leynos leynos commented Jun 18, 2026

Copy link
Copy Markdown
Owner

Summary

This draft PR contains the execution plan for task 3.3.3: Replace shared TuiViewLink references with host-neutral review view references.

The execplan introduces a host-neutral abstraction for review view references, decoupling TUI-specific implementation details from domain models. After implementation, code review summary data transfer objects (DTOs) will expose host-neutral ReviewViewRef values that can be safely serialized and consumed by CLI tools, libraries, and other delivery mechanisms without TUI-specific imports.

Execplan Document

The complete execution plan is documented in:

Key Features of the Plan

  • Glossary & Definitions: Formal definition of "host-neutral reference" and related concepts
  • Design Phases: Structured approach from specification (ADR 008/010) through implementation and validation
  • Comprehensive Testing: Red-Green-Refactor examples with error handling, edge cases, and adapter boundary tests
  • Architecture Enforcement: ViewResolverRegistry pattern and explicit tests to prevent hexagonal boundary violations
  • Clear Acceptance Criteria: Concrete validation commands and expected outputs for each phase
  • Expert Review Integration: Incorporates feedback from architecture, testing, and clarity reviews

References

  • Execplan: docs/execplans/3-3-3-replace-shared-tui-references-with-host-neutral-references.md
  • Related ADRs (to be created during Phase 1): ADR 0008 (PR Discussion Summary Contract), ADR 0010 (Review Adapter Capability Gap)
  • Lody Session: https://lody.ai/leynos/sessions/${LODY_SESSION_ID}

leynos and others added 22 commits June 18, 2026 02:35
…7, MD004)

- Fix MD013 line length violations by wrapping long lines to 80 chars
- Fix MD060 table formatting by using '---' separators and proper spacing
- Fix MD012 multiple blank lines by consolidating to single blank lines
- Fix MD032 blank lines around lists by adding proper spacing
- Fix MD047 trailing newline by ensuring files end with single newline
- Fix MD004 list style by changing asterisks to dashes

Changes made to:
- .github/actions/*/README.md files (table formatting and line length)
- docs/windows-gnullvm-build.md (wrapped long lines)
- docs/execplans/*.md (blank lines, list spacing, long lines)
- docs/adr/0001-stable-manpage-path.md (list style)
- docs/cmd-mox-users-guide.md (line wrapping)
- rust-toy-app/README.md (table formatting and line length)
- README.md (table alignment)

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
Minor reformatting of release-to-pypi-uv/README.md table descriptions to
comply with MD013 line length constraints while maintaining meaning.

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
Shorten table descriptions to meet 80-character line limit.
Reformat long tables for better readability.
Fix code block line wrapping in scripting-standards.md.
Simplify composite-actions-vs-full-workflows table.

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
Reduce line lengths in determine-release-modes, ensure-cargo-version,
and windows-package action READMEs to comply with 80-character limit.

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
Shorten crate-version description to meet 80-character limit.

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
Fixes all remaining markdown linting errors including:
- Removed consecutive blank lines (MD012)
- Wrapped long lines to 80 characters (MD013)
- Added proper spacing around fenced code blocks (MD031)
- Added language specifiers to code blocks (MD040)
- Fixed lists surrounded by blank lines (MD032)
- Changed emphasis to proper heading (MD036)
- Removed trailing spaces (MD009)

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
Added blank lines around lists and numbered lists as required
by MD032 rule. All markdown linting checks now pass.

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
- Break long lines to ≤80 characters
- Add language specifications to code blocks
- Fix heading hierarchy and duplicates
- Ensure proper blank lines around lists and code blocks
- Convert emphasis-based status to proper heading

All MD013, MD012, MD031, MD032, MD036, MD001, MD024, MD040 violations resolved.
Renamed duplicate section headings (Steps, Go/no-go gate) to include
phase numbers (Phase 1 Steps, Phase 1 Go/no-go gate, etc.) to resolve
MD024 violations. Also fixed MD001 heading increment violations by
converting incorrectly nested headings to bold text where appropriate.

All markdown linting checks now pass.

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
Proposes design for supporting multiple names per configuration parameter
with compile-time and runtime alias registration. Includes motivation from
vk and podbot use cases, detailed design with macro-level expansion, runtime
API, precedence rules, comprehensive testing strategy, migration path, and
consideration of alternatives (raw scanning, separate layers, config files).

Addresses unresolved questions around case sensitivity, deprecation tracking,
nested struct handling, and performance profiling.

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
Multi-agent research and community review incorporated:

Prior Art Research:
- Analyzed 9 tools (clap, config-rs, Viper, envy, figment, pydantic-settings)
- Identified existing patterns in Rust, Go, Python config ecosystems

Technical Review Findings:
- 10 strengths: intuitive macro syntax, clear precedence rules, comprehensive
  test strategy, thorough alternatives analysis
- 13 concerns addressed: runtime vs compile-time precedence, nested struct
  composition, transitive alias handling, performance implications

Security Review:
- 16 risks identified: credential leakage, redaction in error messages,
  cycle detection, sensitive field marking, audit logging requirements
- 14 mitigations: add sensitive metadata, implement redaction, support
  immutable aliases mode, restrict runtime scope, enforce deprecation

Design Highlights:
- Three-layer architecture: compile-time macros, runtime builder API,
  auto-generated documentation with secret redaction
- Real use cases grounded in vk (GitHub token) and podbot (multi-environment)
- Phased migration strategy with backwards compatibility
- Unresolved questions explicitly marked for follow-up RFCs

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
- Wrap long lines to 80 character limit
- Add blank lines around lists
- Fix table formatting with proper column alignment
- Add language specifications to code blocks
- Wrap long reference links
- Remove trailing whitespace

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
- Fixed table alignment (MD060): aligned pipe characters with header
- Added language specifier to fenced code block (MD040): rust
- Added blank lines around code blocks in lists (MD031)
- Shortened long lines and replaced en-dashes (MD013): adjusted reference
  links to fit within 80-character line limit

All lint checks now pass: markdownlint and nixie validation complete.

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
…esolution Policy

Proposes adding a generic file-layer resolution policy API to ortho-config,
enabling complex discovery patterns (ordered explicit selectors, multi-scope
stacking, fail-closed semantics) without duplicating logic in applications.

Key features:
- Ordered explicit selector chain (CLI, env vars, aliases) with required/
  exclusive semantics
- Multi-scope automatic discovery (system/user/project) with scope ordering
- Reusable file-layer resolver for early diagnostic access and late merge
- Extended discovery(...) macro attributes
- Explicit error policy distinguishing selected/automatic/malformed files

Targets netsuke as primary use case; eliminates need for custom config-goblin
logic in src/cli/discovery.rs. Separates ortho-config mechanics from application
policy choices.

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
The file-layer policy RFC was generated during multi-agent research but is
outside the scope of the requested environment variable aliases RFC. Removing
to keep deliverables focused on the requested design.

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
This is a comprehensive execution plan for implementing safe host-mounted
workspaces in Podbot. The plan covers:

- Threat model documentation (symlink escapes, path traversal, privilege escalation)
- Path canonicalization with symlink detection
- Allowlist enforcement for mount roots
- Write permission validation in rootless engine scenarios
- Integration and end-to-end testing via BDD
- Documentation updates

The implementation proceeds through seven phases with clear Red-Green-Refactor
milestones for unit tests and BDD scenarios. All code changes maintain existing
API stability while adding new workspace mount validation capabilities.

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
Corrected line length violations, blank line spacing, and list
formatting to comply with markdown lint standards. The execplan is now
ready for review.

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
…idance

Updated docexecution plan with:
- APPROVED status and observable success criteria
- Enhanced constraints (8 items) and tolerances with escalation triggers
- Detailed risk assessment with severity/likelihood/mitigation for 7 scenarios
- Complete 9-stage implementation plan with Red-Green-Refactor validation at each step
- 40+ test strategy (25 unit + 6 property + 10 integration + 8 BDD + 1 stress)
- Comprehensive threat model documenting 7 attack vectors with prevention mechanisms
- Hexagonal architecture overview with domain model, 4 ports, and 4 adapters
- Detailed acceptance criteria with quality gates and expected outputs
- Integration points with tasks 1.4.1 and 2.2.5
- Configuration schema, type signatures, and concrete implementation steps
- Idempotence and recovery guidance for implementation
- Example error flows and fixture setup

Plan is production-ready and provides sufficient guidance for novice to implement
end-to-end with no external context. All 9 stages are scoped, sized, and validated.

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
Add comprehensive execution plan for task 3.3.3: Replace shared TuiViewLink
references with host-neutral review view references.

The plan includes:
- Formal glossary defining host-neutral references and related concepts
- Design phases for ReviewViewRef abstraction and view resolver pattern
- Red-Green-Refactor test examples with error handling and edge cases
- ViewResolverRegistry pattern to enforce hexagonal architecture boundaries
- Detailed validation criteria with concrete test commands
- Phase 1 pre-flight checks and design artifacts (ADR 008/010)
- Risk assessment including Python ecosystem concerns
- Complete interfaces specification and artifact examples

Plan follows expert review feedback on architecture, testing strategy, and
clarity. Ready for approval before Phase 1 implementation.

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>

@sourcery-ai sourcery-ai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry @leynos, your pull request is larger than the review limit of 150000 diff characters

@coderabbitai

coderabbitai Bot commented Jun 18, 2026

Copy link
Copy Markdown
Contributor

Important

Review skipped

Draft detected.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 608622b4-fc7d-4460-b25a-86d109263e64

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch 3-3-3-replace-shared-tui-references-with-host-neutral-references

Comment @coderabbitai help to get the list of available commands and usage tips.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant