Skip to content

Dev - #21

Merged
Adron merged 6 commits into
mainfrom
dev
Sep 6, 2026
Merged

Dev#21
Adron merged 6 commits into
mainfrom
dev

Conversation

@Adron

@Adron Adron commented Sep 6, 2026

Copy link
Copy Markdown
Member

Summary

Plan / wave reference

  • PLAN.md §
  • Wave / milestone:

Path ownership

  • Touches only one of Packages/InterlinedKit/**, Packages/InterlinedDomain/**, Packages/InterlinedPersistence/** per agent (or one App feature folder)
  • No edits to PLAN.md or ORCHESTRATION.md (read-only)

Tests

  • Unit tests added/updated with BDD-style names (test_givenX_whenY_thenZ)
  • swift test --package-path Packages/<pkg> passes locally
  • xcodebuild -scheme InterlinedList -destination 'platform=macOS' build test passes locally

Docs

  • docs/api-coverage.md updated if endpoint coverage changed
  • docs/progress.md updated if a wave gate moved
  • New decision recorded under docs/decisions/ if architecture changed

Adron and others added 6 commits September 4, 2026 12:40
…ist nesting

Deletes the entire ListFolder vertical slice and its sidebar section. The
Lists sidebar now renders only the owned-lists tree (OwnedList.parentID
parent/child nesting via Section("Lists")), which is unaffected — the two
were independent concepts that merely both nested. The Documents "folder"
feature (FolderNode/FolderRecord/FolderTreeViewModel) is unrelated and
untouched.

Removed (8 files):
- App: ListFoldersSectionView, ListFoldersViewModel
- Domain: ListFolder model, ListFoldersService (+ tests)
- Kit: ListFoldersEndpoint, ListFolderDTO (+ tests)

Wiring:
- OwnedListsRootView: drop ListFoldersSectionView() from the sidebar List
- AppEnvironment: drop the listFolders service, the retained listFoldersAPI,
  its init parameter/assignment, the live() wiring, and the doc comments
- repoint two comments that referenced the deleted ListFoldersViewModel/
  listFolders (ShareLinksViewModel, AppEnvironment sharing doc)

Verification: swift test green — InterlinedKit 314, InterlinedDomain 619,
InterlinedPersistence 135 (0 failures); Decision-0003 grep = 0 real Kit
imports. App-target xcodebuild test could NOT be run this session: the
machine's DARWIN_USER_CACHE_DIR is returning EIO (getconf exit 71), so
xcodebuild aborts pre-compilation — unrelated to this change. App gate to
be confirmed once the cache-dir fault clears.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MQCieButVmc4o7KC6wWzEq
work-consolidation.md still listed "List Folders (cycle-safe tree)" under
the already-shipped Collaboration features. The feature was removed on
refactor/lists-remove-list-folders (commit 1afb89d), so the snapshot was
stale. Retire the claim and note the removal + date; the owned-lists
parentID parent/child nesting is a separate concept and remains.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…folders

refactor(lists): remove the List Folders feature, keep parent/child list nesting
…fo.plist

`notarize-and-package.sh` derived APP_VERSION by reading
CFBundleShortVersionString directly out of App/Resources/Info.plist. That
file stores the *unexpanded* build variable `$(MARKETING_VERSION)` — Xcode
substitutes it at build time, so PlistBuddy returns the literal seven-
character string, not a version.

Consequences of the old behaviour, all of which only surface after a full
archive + notarization cycle has already run:

  - artifacts named `InterlinedList-$(MARKETING_VERSION).pkg` / `.dmg`
  - `pkgbuild --version` and `productbuild --version` given that same
    literal, producing an installer with a nonsense version
  - the appcast enclosure filename could never match the built artifact

Resolve MARKETING_VERSION through `xcodebuild -showBuildSettings` on the
Release configuration instead, and add a guard that hard-fails with an
actionable message when the resolved value is empty or still contains
`$(` — cheap up front, versus discovering it after notarization. An
explicit APP_VERSION override still wins, unchanged.

The header docs for APP_VERSION are corrected to match: Info.plist is no
longer read for the version.

Verification (no Swift sources touched, so the usual BDD quartet does not
apply; the script has no unit-test harness in this repo, so the three
branches were exercised directly against the real project paths):
  - default resolution      → `InterlinedList-0.1.0 (pkg version: 0.1.0)`
  - explicit APP_VERSION    → `InterlinedList-1.2.3-alpha`, honoured
  - unexpanded variable     → guard message, exit 1
  - `bash -n` clean on all 8 scripts/*.sh
E2E gate re-run green: build SUCCEEDED, App 622/622, Kit 314, Domain 619,
Persistence 135, Decision-0003 import guard 0 hits.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013tAJgfBGnnA1HgRGAWvkRK
…udit

Three corrections to work-consolidation.md, all verified against code
rather than assumed:

1. **G14's `ImagePrep` tail was already done** — the doc still listed it as
   the last open §1 follow-up. In fact the media size ceilings are
   server-driven end to end: `ImagePrep.Limits` + `prepare(_:limits:)`,
   `ContentLimits.imagePrepLimits`, both `uploadImage` call sites, and
   `uploadVideo`'s live `videoMaxBytes`, with `AppEnvironment` injecting
   `ContentLimitsService` into both services. §1 is now genuinely closed,
   so the §1 callout and the "where we are now" paragraph are updated to
   stop pointing at a finished item.

2. **Test baseline refreshed** to the counts observed 2026-09-05: Kit 314 /
   Domain 619 / Persistence 135 / App 622. Kit and Domain dipped from
   317/628 because PR #19 deleted the List Folders tests with the feature —
   noted inline so the drop doesn't read as regression.

3. **§3a pre-flight audit recorded** — what was verified sound (script
   syntax, export options, sync-agent embed paths, Sparkle wiring, appcast
   minimumSystemVersion matching the 15.0 deployment target), the one
   blocking version-resolution bug that was found and fixed, and the two
   decisions left for the owner: the version number disagrees across
   MARKETING_VERSION (0.1.0), the appcast (0.0.1-alpha) and the tag step
   (v1.0.0); and SUFeedURL's path disagrees with the appcast's own comment
   block.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013tAJgfBGnnA1HgRGAWvkRK
…resolution

fix(release): resolve release version from build settings, not Info.plist
@Adron
Adron merged commit cedcb1a into main Sep 6, 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