Skip to content
This repository was archived by the owner on May 29, 2026. It is now read-only.

object pages#10

Merged
RalkeyOfficial merged 12 commits into
developmentfrom
feature/REGISTERS-19/objects-navigation
Oct 1, 2024
Merged

object pages#10
RalkeyOfficial merged 12 commits into
developmentfrom
feature/REGISTERS-19/objects-navigation

Conversation

@RalkeyOfficial

Copy link
Copy Markdown
Contributor

No description provided.

@RalkeyOfficial RalkeyOfficial merged commit 0521482 into development Oct 1, 2024
@RalkeyOfficial RalkeyOfficial deleted the feature/REGISTERS-19/objects-navigation branch October 1, 2024 09:22
rubenvdlinde pushed a commit that referenced this pull request Jul 30, 2025
rubenvdlinde added a commit that referenced this pull request May 3, 2026
…1420)

Adds four openspec changes implementing the audit's top hardcoded-
functionality findings + ADR-019 + ADR-025.

- openspec/changes/register-resolver-service/ (4 files, 560 lines)
  publishable RegisterResolverService that absorbs the
  `getValueString(...register/schema...)` pattern duplicated across
  13 call sites in opencatalogi (5 controllers), pipelinq (8
  services/jobs), and docudesk (OpenRegisterResolver). Five public
  methods (resolveRegisterId/SchemaId/Register/Schema/Pair),
  request-scoped caching, multi-tenant scoping via MultiTenancyTrait,
  three structured exceptions (MissingConfig / RegisterNotFound /
  SchemaNotFound), enumerateAppConfigs() for admin tooling.

- openspec/changes/pluggable-integration-registry/ (4 files, 472 lines)
  Implements hydra ADR-019 — two-sided integration registry.
  IntegrationProvider PHP interface + IntegrationRegistry service
  + DI tag auto-registration; migrates the 8 built-in NC types
  (files/notes/tasks/calendar/mail/contacts/deck/talk) from the
  hardcoded `LinkedEntityService::TYPE_COLUMN_MAP`; routes external
  providers through OpenConnector; advertises capabilities via OCS;
  CI parity gate ensures backend ↔ frontend pairing.

- openspec/changes/i18n-source-of-truth/ (4 files, 510 lines)
  Implements hydra ADR-025 (source-of-truth half). Adds
  `sourceLanguage` schema-property modifier + per-object override
  via `_translationMeta` + new `source_language` column on
  openregister_translations + render envelope `_meta.languageMeta`
  + `X-Source-Language` response header + automatic outdated-status
  flip on source-value change. Closes the gap from audit R4.

- openspec/changes/i18n-api-language-negotiation/ (4 files, 437 lines)
  Implements hydra ADR-025 (API contract half). Adds `?_lang=` /
  `?language=` query params with explicit precedence over
  Accept-Language, lax fallback (no 406), and a write-side
  `X-Translation-Target-Language` header for scalar-body PATCH/PUT
  to non-default languages. Conflicting body+header → 400.

References:
.claude/audit-2026-05-03/research/R4-or-i18n-source-of-truth.md
.claude/audit-2026-05-03/research/R5-or-api-language-negotiation.md
.claude/audit-2026-05-03/04-hardcoded.md (top-10 findings #1-#10)
hydra/openspec/architecture/adr-019-integration-registry.md
hydra/openspec/architecture/adr-022-apps-consume-or-abstractions.md
hydra/openspec/architecture/adr-025-i18n-source-of-truth.md
rjzondervan added a commit that referenced this pull request May 28, 2026
Bumps the ddn/sapp constraint from dev-feat/text-replacement-api#25db760
(pre-strict-review snapshot of the per-PR branch) to
dev-work/text-replacement#07e5a74 — the tip of the SAPP fork's
work/text-replacement integration branch after all 10 upstream-PR
drafts (#1-#8 upstream-numbering / #1-#10 fork-PR numbering) were
merged and strict-review remediated.

What lands by switching the pin:
- Filter chain dispatch with array-form /Filter (PR #5)
- ASCIIHex, RunLength, ASCII85, LZW decoders + encoders (#1-#4)
- ToUnicode CMap + FontEncoding for Identity-H/V composite fonts (#6)
- TJ kerning-array flattening with multi-match per TJ + spec-tight
  numeric/hex/whitespace tokenisation (#7)
- Public replace_text_in_document() API with Helvetica subset-font
  fallback + 12-key diagnostic surface + rejected_substitutions input
  validation (#8)
- All chain-failure-propagation contracts (return false on every
  decoder failure path so downstream filters short-circuit cleanly)

Preparatory for the pdf-anonymisation change which depends on the
new replace_text_in_document API.
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants