Improve idea reading and implementation records (Idea 2) #69
Loading…
Reference in a new issue
No description provided.
Delete branch "idea/0002-readable-fjomp-ui"
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?
Summary
Idea 2: https://fjomp.azf.no/ideas/2
Refine idea browsing and reading with compact page headings, prose-oriented sections, Markdown rendering, and review outcomes. Add persisted Grill Me notes, implementation task titles and refinements, and commit references through the agent API.
Acceptance criteria
Test evidence
CGO_ENABLED=0 go test ./...passes.git diff --checkpasses. These checks do not establish visual quality or workflow completeness; the review identifies remaining defects.Operational impact
Four additive SQLite migrations (0009–0012). Preview data includes local backfills that are not in production; deployment needs explicit data reconciliation through the agent API. Production Idea 2 remains planned and branch registration has not succeeded. The repository handoff still contains an abbreviated older plan. No deployment or merge performed. Squash merge intended after review fixes.
Review verdict: changes required. The test suite passes, but the agreed outcome is not complete. Earlier completion claims in this conversation and docs/tasks/0002/006.md overstate verification.
HIGH — Completion artifacts are not the final merge result. internal/idea/repository.go SetBranchWithTasks stores the initial handoff SHA in commit_sha; SetReview never replaces or requires it. /commit accepts any nonempty string without verifying the repository or merge. The template immediately calls that SHA Result and never links to the commit. Store and verify the actual squash commit at completion, separately from branch handoff verification.
HIGH — Squash enforcement only trusts a request string (internal/httpserver/agent.go:252). Any caller can declare merge_method=squash regardless of the forge state, and completion does not require a merge SHA. Verify the merged PR and its resulting commit before completing the idea.
MEDIUM — Latest updates are a static priority switch, not chronology (internal/idea/repository.go:303). Once implementation_updates exists it permanently hides later reviews; Grill Me notes hide later plans. Draft plans are described as approved. Persist ordering for meaningful updates and show their content.
MEDIUM — Implementation content is hidden unless BranchName exists (internal/web/templates/idea.html:11). This hides Idea 2 task titles and refinements despite successful API writes. Render when any implementation artifact is present, and resolve the real production branch-registration failure. The handoff document does not contain the exact approved plan required by the verifier.
MEDIUM — Markdown heading restrictions operate on lines before parsing (internal/web/markdown.go:19). Setext headings and headings inside blockquotes bypass the restriction, while lines beginning with # inside fenced code are modified. Enforce heading policy on the parsed syntax tree, preserving code verbatim, with regression tests.
MEDIUM — IBM Plex cannot load: app.css imports Google Fonts while internal/httpserver/safety.go:21 permits only self resources. Bundle the fonts locally and verify computed typography in a browser.
MEDIUM — Empty ideation still asserts that Grill Me clarified the idea, including skipped sessions (internal/web/templates/idea.html:9). Hide absent notes or accurately describe missing content; do not invent an outcome.
MEDIUM — Newly added API writes have no focused route/persistence/conflict tests. The tests added here cover Markdown basics and static labels, not commit validation, task backfills, update persistence, or squash enforcement. Review bullets also remain list-style:none/display:flex and are not actual visible bullets.
Plan/review record: The detail section order is still fixed, authored review notes are not Markdown-rendered, and production approval of revision 2 returned 409. Local fixture changes are not production records. Reconcile these discrepancies and replace the unsupported completed review note before requesting approval.
Follow-up self-review of
4982f26cddagainst Idea 0002 and the agreed review amendments.No remaining code blockers found. This is not a claim that production rollout is complete, nor an independent reviewer approval.
Verification: CGO_ENABLED=0 go test ./..., CGO_ENABLED=0 go vet ./..., and git diff --check pass. Chromium exercised four routes at 390, 768, and 1280 pixels. The reconciliation rehearsal used a fresh production snapshot and /api/agent, including real Forgejo verification of the pushed Idea 2 handoff and PR #68 final commit.
Remaining rollout criterion: deploy the reviewed build and reconcile production through the revision-checked agent API, then check live pages. The old production API safely refused the dry run; no production records or deployment were changed. Task 006 remains open. Instructions and the outcome-by-outcome review are in docs/tasks/0002/ROLLOUT.md and review.json.
Verification limitation: squash verification proves a one-parent result on the PR merge base with the reviewed tree; it does not trust merge_method. Divergent bases or incomplete forge evidence fail closed. Browser coverage is Chromium, not iPad Safari.
Preview on thunk: http://100.116.94.71:8091/ideas/2
WIP: Improve idea reading and implementation records (Idea 2)to Improve idea reading and implementation records (Idea 2)Deployed to https://fjomp.azf.no on meow. PR #69 was squash-merged as
f2df2d9; production /api/agent reconciled the records and independently verified the final commit, marking Idea 2 complete. A narrow-screen overflow exposed by the final completion check was fixed in squash-merged PR #70 (de6a364), which is the deployed build. Final live Chromium checks pass on four routes at phone, tablet, and desktop widths, including expanded history and local font loading. Previous binary and consistent pre-upgrade database backup are retained under /var/lib/fjomp/backups. Production was not replaced with a preview database.