Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 19 additions & 0 deletions .codex/PIPELINE.md
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,25 @@ Codex must obey:
* VMLab moved to v0.3.5 and is blocked until the v0.3.0 Extensions Foundation is
complete.

## Current maintainer priority order

For further ECLI work, Codex must sequence planning and implementation as:

1. Stabilize all Extensions and the Extensions Layer.
2. Finish TextMate rendering, TextMate performance, and multiline comment
handling.
3. Implement F4 Diagnostics / Linter Panel.
4. Implement F7 AI Code Assistant as an Extensions Layer feature.
5. Implement the plugin layer for new themes, linters, and AI extensions.
6. Implement F11 Terminal-console without duplicating PySH.
7. Implement full mouse support.
8. Implement F8 System Doctor / lab engineer diagnostic tools.
9. Implement F9 Git improvements.

This order does not override Stage gates, audit gates, the single-writer screen
invariant, Extensions Layer security constraints, or release/publish safety
rules.

## Recommended Codex execution mode

For Stage 1 inventory and diagnostics:
Expand Down
23 changes: 23 additions & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -691,3 +691,26 @@ All agents (Codex, Claude Code, Cursor, and any other automation) must obey:
and all active platform packaging contracts must remain green.
* VMLab is out of scope: it moved to v0.3.5 and is blocked until the v0.3.0
Extensions Foundation is complete.

## 14. Current maintainer priority order

For further ECLI work, treat extension stabilization as the first priority:

1. Stabilize all Extensions and the Extensions Layer before adjacent feature
expansion.
2. Finish TextMate rendering, TextMate performance, and multiline comment
handling.
3. Implement F4 Diagnostics / Linter Panel.
4. Implement F7 AI Code Assistant as an Extensions Layer feature.
5. Implement the plugin layer for new themes, linters, and AI extensions.
6. Implement F11 Terminal-console without duplicating PySH. Command execution
must remain routed through explicit ECLI services, PySH, or CommandPlan
surfaces; do not migrate PySH source into ECLI.
7. Implement full mouse support.
8. Implement F8 System Doctor / lab engineer diagnostic tools.
9. Implement F9 Git improvements.

This priority order is a sequencing rule for planning and implementation. It
does not waive Stage 1/Stage 2 gates, P0 audit requirements, the single-writer
screen invariant, the Extensions Layer security contract, or release/publish
safety rules.
24 changes: 24 additions & 0 deletions CODEX.md
Original file line number Diff line number Diff line change
Expand Up @@ -223,6 +223,30 @@ Codex must obey:
* VMLab is out of scope: it moved to v0.3.5 and is blocked until the v0.3.0
Extensions Foundation is complete.

## Current maintainer priority order

For further ECLI work, Codex must treat extension stabilization as the first
priority:

1. Stabilize all Extensions and the Extensions Layer before adjacent feature
expansion.
2. Finish TextMate rendering, TextMate performance, and multiline comment
handling.
3. Implement F4 Diagnostics / Linter Panel.
4. Implement F7 AI Code Assistant as an Extensions Layer feature.
5. Implement the plugin layer for new themes, linters, and AI extensions.
6. Implement F11 Terminal-console without duplicating PySH. Command execution
must remain routed through explicit ECLI services, PySH, or CommandPlan
surfaces; do not migrate PySH source into ECLI.
7. Implement full mouse support.
8. Implement F8 System Doctor / lab engineer diagnostic tools.
9. Implement F9 Git improvements.

This priority order guides planning and implementation only. It does not waive
Stage 1/Stage 2 gates, P0 audit requirements, the single-writer screen
invariant, the Extensions Layer security contract, or release/publish safety
rules.

## Expected Codex final response

For non-trivial work, finish with:
Expand Down
7 changes: 7 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -673,6 +673,13 @@ Found a bug? Please help us by opening an issue on GitHub:
* **Terminal**: Supports 256 colors and UTF-8
* **TextMate syntax highlighting** (default): installed automatically via the
`python-textmate` dependency, which pulls `onigurumacffi` (the **Oniguruma**
regex engine). Binary wheels cover Linux, macOS, and Windows. On source-build
platforms (e.g. FreeBSD) install the Oniguruma development headers
(`devel/oniguruma`). If unavailable, ECLI falls back to the built-in legacy
highlighter automatically (`[extensions].syntax_engine = "legacy"`).
### Supported Platforms
* Ubuntu 20.04 LTS and newer
Expand Down
51 changes: 51 additions & 0 deletions audit-report.md
Original file line number Diff line number Diff line change
Expand Up @@ -595,3 +595,54 @@ find .github/workflows -maxdepth 1 -type f -print | sort
nl -ba .github/workflows/*.yml | sed -n '1,260p'
rg -n "config|ConfigService|syntax_highlighting|History|undo|redo|runtime_import|pyinstaller|artifact|freebsd|coderabbit|CodeRabbit" tests .github docs/quality docs/release pyproject.toml
```

## Issue #102 addendum — multiline TextMate protection

Implementation:

- ECLI keeps TextMate scopes as the primary token source for extension-backed
rendering.
- `src/ecli/extensions/ecli_integration/syntax_service.py` now applies a
deterministic protected-range pass for known stateless multiline gaps:
Python strings/docstrings, JavaScript/TypeScript block/doc/line comments and
strings, HTML comments, and CSS block comments/strings.
- Protected comment/string ranges are cached by buffer revision and mapped onto
viewport lines before `theme_bridge.tokens_to_spans()` flattens TextMate
output, so protected comment/string style wins over leaked keyword, number,
operator, tag, selector, property, or value categories.

Real tests:

- `tests/extensions/test_textmate_multiline_protection.py` adds direct
protected-range tests, TextMate-span rendering tests, and editor-facing
rendering tests for Python, JavaScript, TypeScript, HTML, and CSS multiline
fixtures.
- Existing performance coverage remains in
`tests/extensions/test_textmate_render_performance.py` and
`tests/extensions/test_textmate_scroll_regression.py` using real repository
files including `Makefile`, `logs/freebsd-0.2.2-fail.log`,
`logs/pr-46-body.md`, and `scripts/build_pyinstaller_linux.py`.

Log/artifact analysis:

- The known real artifacts for large-file acceptance remain the repository
`Makefile`, `logs/freebsd-0.2.2-fail.log`, and `logs/pr-46-body.md`.
- Synthetic fixtures are intentionally used only for exact adversarial
multiline comment/string bodies that are not guaranteed to exist in repository
files.

Documentation:

- `docs/architecture/extensions-layer.md` documents TextMate-primary rendering,
the bounded language-aware protection layer, and the large-file/multiline
acceptance tests.
- `docs/release/release-checklist.md` includes large-file scroll, multiline
rendering, no-SQL fallback, and TextMate dependency/fallback checks.

Audit conclusion:

- Imported upstream extension assets remain untouched.
- F11 PySH Console Panel behavior, future F4 linter work, and VMLab/QEMU/QMP
scope remain untouched.
- The issue #102 rendering gap is constrained to the ECLI-owned adapter layer,
with focused regression and performance evidence.
Loading
Loading