Commit Graph

2106 Commits

Author SHA1 Message Date
876f0f09f2 docs(32.1-01): document the MCP scope list and call context
- READMEs and service pages name the new pact and wristband identifiers
- an empty MCP scope list resolves to the five fixed names; OIDC discovery is unchanged
2026-10-28 14:36:50 +01:00
9e29d6ff9b feat(32.1-01): expose offline access on the pending consent view
- PendingRequestView.OfflineAccess is the pending row's flag
- IssueCode's signature is unchanged
2026-10-28 14:33:11 +01:00
63d05e8acb feat(32.1-01): publish one MCP scope list and call context
- pact gains MemberTokenScopeCatalog, MCPAdvertisedScopes and MCPCall
- an empty MCP ScopesSupported resolves to the five fixed names including backend
- pier copies advertised scopes and sets MCPCall beside WithDispatch
2026-10-28 14:32:31 +01:00
2cea3127cc docs(33): roadmap plan list after revision 2026-10-28 14:25:11 +01:00
8416f10849 docs(33): revise phase plan after checker 2026-10-28 14:23:02 +01:00
200c664a4b docs(32.1): create phase plan 2026-10-28 14:19:09 +01:00
41d145dde1 docs(phase-19.6): add security threat verification 2026-10-28 14:03:50 +01:00
f5931d5698 docs(phase-19): add security threat verification 2026-10-28 14:01:30 +01:00
3938ebbddd docs(phase-16.2): add security threat verification 2026-10-28 13:59:44 +01:00
1173f35f80 docs(33): record D-70, SC-3, H1 scope and research defaults; resolve open questions 2026-10-28 13:56:00 +01:00
88fbfb7b39 docs(33): create phase plan
Fourteen plans in nine waves for SEO output, audit and content, with the
pattern map and the IndexNow coverage matrix.

Claude-Session: https://claude.ai/code/session_013jPFwWHBUFJPX91w5Qa4Vs
2026-10-28 13:48:06 +01:00
0db030598e docs(phase-32.1): add validation strategy 2026-10-28 13:38:02 +01:00
bd23a82f22 docs(todos): close FAQ port, site-cache purge, sitemap XSLT; drop sitemap port 2026-10-28 13:19:06 +01:00
a7df0caaa3 docs(32.1): add read/write implied scopes and vue-oauth-layer to context 2026-10-28 13:06:34 +01:00
14979e7009 docs(32.1): capture phase context 2026-10-28 13:02:54 +01:00
df2a0753c7 docs(33): record plan list, release cadence and WebP decision 2026-10-28 12:49:20 +01:00
2cc3c1728b docs(33): UI design contract 2026-10-28 12:38:04 +01:00
69d5a24fa8 docs(33): record per-site options for post title, new-tab links and journal breadcrumbs 2026-10-28 12:35:11 +01:00
2ac8663fe7 docs(33): make Journal's H1 conversion a per-site setting 2026-10-28 11:53:45 +01:00
126c0866fc docs(33): research and validation strategy for SEO output, audit and content 2026-10-28 11:39:03 +01:00
b8aa5d881c docs(quick-261028-fsq): sm-user-plugin MCPDispatch credential carries the personal token id 2026-10-28 11:31:35 +01:00
7c4dbb1252 docs(33): write out phase 33 context from the phase 32 SEO discussion 2026-10-27 20:10:32 +01:00
adf5cccc4a test(32): verification report and human verification items as UAT 2026-10-27 16:12:00 +01:00
6472f2861e docs(32): reconcile review disposition with the fix report 2026-10-27 15:47:24 +01:00
9fe489084c docs(32): record code review disposition 2026-10-27 15:47:24 +01:00
175e469587 docs(32): add code review fix report 2026-10-27 15:47:00 +01:00
0e187cfb6a fix(32): WR-07 close the relation and partial routes of hidden owner fields
Hide removed an owner field from the schema, show and save, but a hidden
relation-manager field's relation routes (panel, link, unlink, child CRUD,
deferred commit) and a hidden partial field's partial stayed reachable.
dropHiddenFields now drops the relation and the partial path too; a partial
the list or preview header or another field still uses keeps rendering.
2026-10-27 15:39:32 +01:00
1583651783 fix(32): WR-02 report the request locale's primary tag on record events
Admin saves copied the raw context locale into RecordSaved.Locale, which
could be a whole Accept-Language header, while reorder reported a
normalised code. Saves, child writes and reorder now report the primary tag
of the request locale. The pact doc says what Locale is and that per-locale
work keys on RecordChange.Locale, since an admin save writes the row in the
default content locale.
2026-10-27 15:32:11 +01:00
468af06c86 fix(32): WR-01 fire record events for hasMany link, unlink and deferred children
hasMany link and unlink rewrote a child's foreign key (and ClearOnChange
columns) without a RecordSaved, the deferred commit attached session-created
children silently, and unlinking a session-created child deleted it without
the RecordDeleted that should follow its RecordSaved{Created}. These paths
now fire the child's events after the commit; the CRUD service carries the
registry so the deferred commit names the child's controller.
2026-10-27 15:30:07 +01:00
d660cd05fa fix(32): CR-04 take widget actions dispatched from connectedCallback
WidgetField assigned its element after append(), so an action the element
dispatched from connectedCallback (inside append) found no target and was
dropped without a result or an error state; widgets that load on connect
never started. The element is now the action target before it is connected.
Rebuilt the embedded admin dist.
2026-10-27 15:25:24 +01:00
5471b66b8f fix(32): CR-02 gate field type uploads on extension visibility
The plugin field-type upload route resolved a form extension's field without
checking the extension's Permissions and Visible, so an administrator who
cannot see the extension could still run its Upload. The route now answers
404 for them, like the extension's widget actions and partials.
2026-10-27 15:22:21 +01:00
676ca539aa fix(32): CR-01 check required extension fields on the lifted value
A required: true field in a form extension became a rule on the owner's
model, where its value never exists, so every save of the host form failed,
also for administrators who cannot see the extension. mergedRules now skips
extension fields; liftExtensionValues checks required on the submitted value
for visible extensions only (create: must be sent and not blank; update:
only when sent).
2026-10-27 15:20:33 +01:00
2b7174d406 docs(32): number review findings and record their disposition 2026-10-27 14:31:55 +01:00
1259f5bd1d docs(32): record code review disposition 2026-10-27 14:31:50 +01:00
32141f803a docs(32): record code review disposition 2026-10-27 14:31:37 +01:00
8b4817fa0a docs(32): add code review report 2026-10-27 14:31:28 +01:00
cffa49642c docs(32-06): mark plan 32-06 executed in the roadmap 2026-10-27 14:18:39 +01:00
f098ffdbf9 docs(32-06): complete the unit tests and v0.5.1 release plan 2026-10-27 14:18:11 +01:00
a9a7f58eed fix(32-06): the additive stage compares with the previous release once HEAD is tagged
- last_tag skips tags that contain HEAD, so a post-release run compares
  v0.5.1 with v0.5.0 instead of with itself
2026-10-27 14:15:49 +01:00
15b0d0d148 docs(32-06): complete the validation map
Every task of plans 32-01 to 32-06 with its automated command and the
latest status, Wave 0 checked, nyquist_compliant and wave_0_complete
true; status stays draft until the full gate is green with the demo
mounted. Records the host-only TestNoTideJournalFixtures exception.
v0.5.1
2026-10-27 13:36:27 +01:00
8c961f5fb5 test(32-06): framework unit matrices for form extensions, record events and descriptors
- form extensions: placement across three plugins, required plugins' tabs
  and fields, Hide with neighbours and whole tabs, spans, grouping only of
  extended forms; every remaining boot error with plugin, controller and
  offending name
- record events: the pure snapshot/diff (create, update, pointers, times as
  instants, timestamps and key omitted, per-locale translations) and the
  value helpers
- descriptors: MatchPattern edge cases, MatchPath ordering, types without
  Content, duplicate Model/Controller across plugins
2026-10-27 13:11:28 +01:00
2b300ec03d test(32-06): additive and compat stages in check-phase32
- scripts/apisurface: standard-library printer of a package's exported API
  (signatures without parameter names, struct fields and tags, interface
  method sets, constants with their group index), canonical across
  formatting and comment edits
- additive: compares the API of pact, cabana, signpost and every other
  changed package with the newest tag; refuses removed or changed lines and
  methods added to existing interfaces (D-106)
- compat: sitemap at HEAD, Journal and the demo at their pre-phase commits
  (demo with its pinned submodules) build and pass short tests; every other
  sibling that requires the framework builds, each through a scratch go.work
  in a scratch sibling layout; read-only snapshots for other users' repos
- self-test plants 12 API change cases; PHASE32_SKIP_TESTS for host-only
  test failures
2026-10-27 13:08:49 +01:00
49502e8ccb docs(32-05): mark plan 32-05 executed in the roadmap 2026-10-27 12:51:09 +01:00
7353e08c36 docs(32-05): complete SEO management over MCP, batches, undo and CSV plan 2026-10-27 12:50:25 +01:00
20d02d722a docs(32-05): sm-demo-app mount patch for golem15.seo
- proven in a scratch worktree of sm-demo-app 8fcdbdd: TestBootAllPlugins,
  TestSEOTabMounted and TestSEOToolsCatalog pass
- summer.yaml, config/golem15.seo.yaml, the nginx /robots.txt location,
  DEPLOY.md, boot_test.go, plugins.gen.go and the two SEO tests; plan
  32-06 applies it after the plugin tag
2026-10-27 12:48:31 +01:00
9247761c94 test(32-05): check-phase32 gate
- stages self-test, go, plugins, consumers, docker, admin, docs and
  marker; --all with the docker NOT RUN rule (PHASE32_REQUIRE_DOCKER)
- consumers: NOT MOUNTED golem15.seo refuses unless
  PHASE32_ALLOW_UNMOUNTED=1, and the Journal route-drift check between
  the demo's menu_items.yaml and its Nuxt routes
- marker (D-90): lines added since PHASE32_BASE under modules/ and docs/
  name neither SEO nor a consuming application; Journal imports no SEO
  or sitemap plugin; the framework does not require grobotstxt
2026-10-27 12:48:23 +01:00
f96d7d4b4a docs(32-04): mark plan 32-04 executed in the roadmap 2026-10-27 11:57:26 +01:00
8800137d16 docs(32-04): complete redirects, 404 log and robots.txt plan 2026-10-27 11:56:20 +01:00
99889f0bcf docs(32-04): grobotstxt decision note
- github.com/jimsmart/grobotstxt v1.0.3 for the robots.txt tester and
  the noindex-blocked warning in sm-seo-plugin (D-99), plugin-only
- STACK.md Supporting Libraries row
2026-10-27 11:42:51 +01:00
930d91a3c1 docs(32-03): complete SEO plugin core plan 2026-10-27 11:09:44 +01:00