feat: expose structured Lavish feedback reads - #91
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Intent
Port upstream kunchenguid/firstmate PRs kunchenguid#3321 and kunchenguid#3371 into this fork on the firstmate side only, adapting bin/fm-procevent-lavish.sh. Present captured Lavish results as structured output enumerating every prompt and annotation, keeping the session-ending freeform message distinct. Always surface non-choice freeform comments even with selectors, while suppressing machine-generated choice Context data and not fabricating comments for pure annotations. Add executable behavioral regression coverage and keep bin/fm-lint.sh clean. Do not modify lavish-axi or any OMP adapter/spawn/verification/wake code; prove tests/fm-omp-harness.test.sh passes. Firstmate-Validation-Generation: 9fe6c20f313742c3baf00e7da620264e
What Changed
readcommand to present captured Lavish results with completeness metadata, per-item annotations, and a distinct session-ending message section.Risk Assessment
🚨 High: The requested two-PR port is incomplete, and the new reader can silently alter multiline feedback content, so merge requires explicit scope confirmation and a correctness fix.
Testing
Ran the targeted process-event/Lavish behavioral suite and required OMP harness regression suite; both passed. Manually exercised the public structured-read command and captured reviewer-visible transcript evidence. No source or worktree artifacts were left behind.
Evidence: Lavish structured-read evidence
Structured Lavish read transcript showing a distinct session-ending message, preserved selector-bearing freeform comment, pure annotation, filtered choice Context payload, and completeness metadata.Pipeline
Updates from git push no-mistakes
✅ **intent** - passed
✅ No issues found.
✅ **Rebase** - passed
✅ No issues found.
bin/fm-procevent-lavish.sh:84- The required intent says to “Port upstream kunchenguid/firstmate PRs fix(bin): present Lavish feedback as structured output kunchenguid/firstmate#3321 and fix: surface comments on Lavish annotations kunchenguid/firstmate#3371 into this fork on the firstmate side only.” This change only adds the fix: surface comments on Lavish annotations kunchenguid/firstmate#3371-style reader; the fix(bin): present Lavish feedback as structured output kunchenguid/firstmate#3321 firstmate-side behavior is absent:armstill registers rawlavish-axi poll(bin/fm-procevent-lavish.sh:84) and there are nopoll,silent, oranswerscommands. Please confirm whether omitting those required PR3321 behaviors is intentional or complete the port.bin/fm-procevent-lavish.sh:193-bodyfilters out empty lines (grep { length }), so a captured comment or annotation such asfirst line\n\nsecond lineis emitted as two adjacent lines and the original content is not preserved. This violates the structured reader's promise to present captured feedback faithfully; emit split lines while retaining interior blank lines (only trim an optional final terminator).✅ **Test** - passed
✅ No issues found.
bash tests/fm-procevent.test.shbash tests/fm-omp-harness.test.shManualbin/fm-procevent-lavish.sh readverification with representative feedback, annotation, choice, and session-ending message records; transcript saved as evidence✅ **Document** - passed
✅ No issues found.
✅ **Lint** - passed
✅ No issues found.
✅ **Push** - passed
✅ No issues found.