Skip to content

Phase 7 integration hardening - #3

Merged
DaveHomeAssist merged 3 commits into
mainfrom
codex/noteforge_phase7
Aug 20, 2026
Merged

DaveHomeAssist merged 3 commits into
mainfrom
codex/noteforge_phase7

Conversation

@DaveHomeAssist

Copy link
Copy Markdown
Owner

Summary

  • preserve schema-v3 authority through randomized 1,000-note migration and backup/restore verification
  • update task, calendar, and property derivation through exact changed-note invalidation, including full-vault reset
  • add forced-colors, contrast, reduced-motion, mobile split-pane, adversarial, and cross-feature recovery coverage
  • record final release-candidate performance and compatibility evidence

Verified locally

  • Node 22.22.1: npm test — 425 checks, zero failures
  • npm run test:browser — 394 component assertions, 120 integrated workflows, ten production/offline checks
  • npm run build — 172 modules; 257,023-byte initial shell (157 bytes below ceiling)
  • npm audit --audit-level=high — zero vulnerabilities
  • git diff --check — clean

Pending release gate

  • Manual Safari compatibility pass requires the Mac to be unlocked; do not merge until recorded green.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 6d26f68137

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread test/run-features.mjs
stage = 'updating one task/property source incrementally';
await page.evaluate(async () => {
const note = window.app.db.getNote('phase7-task');
note.update({ content: '---\nstatus: reviewed\n---\n# Work\n\n- [ ] Phase7 updated task @due(2026-08-21)' });

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Badge Derive the calendar smoke date at runtime

The Calendar opens on the current local month, but this fixture always assigns the updated task to 2026-08-21 and then expects its text in the visible calendar. When the browser suite runs outside August 2026, that item is outside the rendered period, so npm run test:browser fails despite correct application behavior. Generate a date in the current month or explicitly open the Calendar on this fixed date.

Useful? React with 👍 / 👎.


refresh() {
this.items = buildCalendarItems(this.db.getAllNotes());
this.items = this.index.list();

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Preserve the calendar's global item ordering

Calling buildCalendarItems([note]) per source sorts only each note's records, while NoteDerivedIndex.list() concatenates those arrays in vault insertion order. The previous buildCalendarItems(this.db.getAllNotes()) globally sorted items by date, note title, and ID, so multiple notes on the same day now appear in insertion order and a rename does not reposition them. Sort the flattened indexed result using the same ordering before rendering.

Useful? React with 👍 / 👎.

@DaveHomeAssist
DaveHomeAssist merged commit becbffa into main Aug 20, 2026
2 checks passed
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