Skip to content

docs: sync the master plan with the 2026-09-15→17 wave - #108

Merged
Adron merged 1 commit into
devfrom
docs/sync-2026-09-17
Sep 17, 2026
Merged

Adron merged 1 commit into
devfrom
docs/sync-2026-09-17

Conversation

@Adron

@Adron Adron commented Sep 17, 2026

Copy link
Copy Markdown
Member

Summary

Brings work-consolidation.md current after the 2026-09-15→17 wave. Docs-only — no .swift, .pbxproj or .plist touched.

The same-PR doc-sync rule was broken again, immediately. PRs #86#107 shipped twenty-two changes, moved sixteen §1f rows, and added ~800 tests before this file moved. The rule postdates most of them, which is the excuse and not a defence — the second occurrence is now recorded in the rule's own note, so the next reader sees it has happened twice rather than once.

What changed

§1f rewritten against the tracker, not patched. Every row now matches its issue's actual state. Sixteen items that read "unbuilt" or "built, unmerged" are shipped; seven issues found during the wave are added (#84, #85, #91, #95, #98, #103, #104); the blocked rows now say what they are blocked on.

One blocker, three issues — now visible. #76, #77 and #78 each need a payload only a second account can produce: a DM's items[] row, its notification row, and a presence users[] row. One other account sending one message and opening one shared document resolves all three. That was invisible while the rows sat apart, and it is the highest-leverage unblock on the list.

Two sections asserted things this wave disproved, corrected in place rather than footnoted:

  • G40's config is an object, not a string — and it does not encode column order, visibility or sort. It is a four-key whitelist (mode, density, filters, search) that silently strips everything else. That is a different feature from the one this doc described.
  • App-settings' "populated shapes still unverified" is replaced by the five modelled guesses that turned out wrong once they were finally verified — including that the family is compare-and-set and that the device fields are deviceName/isDefault, not name/isMainWorkstation.

The toolchain divergence is recorded as a standing hazard. This machine is on Xcode 27; CI pins 26.3. That gap is exactly why dev stopped compiling locally while CI stayed green. Any domain type sharing a name with a SwiftUI symbol is one SDK update from the same break, and CI cannot see it.

The silent-decode count is corrected from three to seven. Four more were found and fixed in this wave — the list-schema contract, the notification vocabulary, the Mastodon provider token, the app-settings device fields. Every one had green tests written against fabricated fixtures.

The baseline now records what was not run

Kit 521 · Domain 1100 · Persistence 147 · App 1113 · SyncAgent 96   (dev @ e39e9ab)

⚠️ With an explicit note that the kit's live ContractTests and the agent's LiveAPISmokeTests were skipped, not passed — the recon rate-limited the .env account. A baseline that quietly counts skipped suites as green is how a release cut gets a surprise.

SyncAgent is added to the baseline for the first time, with the note that it is not in the Xcode scheme and needs swift test --package-path SyncAgent.

Deliberately not in this PR

docs/api-coverage.md still omits rows for routes this wave shipped — /api/user/identities/verify, the /api/user/app-settings/* family, /api/auth/github/status. Adding them piecemeal would desynchronise the section subtotals and grand total that file maintains, and its own maintenance rule governs when Implemented/Tested may flip. That is a proper re-score pass, filed separately rather than half-done here.

Verification

Docs gate per .claude/skills/doc-engineer/assets/docs-quality-checklist.md:

  • No stray conflict markers · 41 §1f rows, 0 malformed · all 44 issue links resolve to real issues
  • Zero code files touched, so the build and test gates are unaffected by construction

🤖 Generated with Claude Code

Twenty-two PRs (#86#107) shipped, sixteen §1f rows changed state, and the test
baseline moved ~800 tests before this file moved at all. The same-PR doc-sync
rule postdates most of them, which is the excuse and not a defence — this is the
catch-up, and the second occurrence is recorded in the rule's own note so the
next reader sees it happened twice.

The work index is rewritten against the tracker rather than patched: every row
now matches its issue's actual state. Sixteen items that were "unbuilt" or
"built, unmerged" are shipped, seven issues found during the wave are added, and
the blocked rows say what they are blocked ON rather than just that they are.

Three of those blocked rows share one blocker, and that is now stated plainly:
#76, #77 and #78 each need a payload only a second account can produce. One other
account sending one message and opening one shared document resolves all three.
It is the highest-leverage unblock on the list and was not visible while the rows
sat apart.

Two sections asserted things the wave disproved, and both are corrected in place
rather than footnoted. G40's `config` is an object, not a string, and it does not
encode column order, visibility or sort — it is a four-key whitelist that
silently strips everything else, which is a different feature from the one this
doc described. The app-settings section's "populated shapes still unverified" is
replaced with the five modelled guesses that turned out wrong when they were
finally verified.

The toolchain divergence is recorded as a standing hazard: this machine is on
Xcode 27, CI pins 26.3, and that gap is exactly why `dev` stopped compiling
locally while CI stayed green. Any domain type sharing a name with a SwiftUI
symbol is one SDK update from the same break, and CI cannot see it.

The baseline now also carries what was NOT run: the kit's live ContractTests and
the agent's LiveAPISmokeTests were skipped, not passed, because the recon
rate-limited the account. A baseline that quietly counts skipped suites as green
is how a release cut gets a surprise.

Refs #66

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@Adron
Adron merged commit cd14732 into dev Sep 17, 2026
8 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