Skip to content

Update release-packages.yml#13

Merged
rbuergi merged 1 commit into
mainfrom
rbuergi-patch-1
Oct 7, 2024
Merged

Update release-packages.yml#13
rbuergi merged 1 commit into
mainfrom
rbuergi-patch-1

Conversation

@rbuergi
Copy link
Copy Markdown
Contributor

@rbuergi rbuergi commented Oct 7, 2024

No description provided.

@rbuergi rbuergi merged commit 831a440 into main Oct 7, 2024
@rbuergi rbuergi deleted the rbuergi-patch-1 branch December 30, 2024 09:24
rbuergi added a commit that referenced this pull request May 5, 2026
…leasePath is set

Tasks #6, #7, #8, #9, #10, #11, #12, #13, #14 from the failing-tests list
share one root cause: NodeTypeContractHandler.Handle was short-circuiting
on node.AssemblyLocation alone. For freshly-created dynamic NodeTypes
(NodeType=NodeType, Content=NodeTypeDefinition), NodeTypeService
.EnrichWithNodeType propagates the STATIC "NodeType" type's framework DLL
(MeshWeaver.Graph.dll) onto the new node's AssemblyLocation through its
fast-path ApplyEntry. The handler then opened MeshWeaver.Graph.dll,
found no MeshNodeProvider for the new hub's path, and silently returned
Success=true with empty NodeTypeConfigurations — so:

- CompileFailsWhenSourceCodeIsInvalid sees Success=true (compile never
  actually ran).
- CompileWithMultipleSourceLocationsPullsInExternalCode misses the
  external Profile type for the same reason.
- CompileActivityLogTest.* never produces an activity log because the
  Roslyn compile never ran.
- LinkedIn* tests can't render their NodeType-bound layout areas.
- MeshPluginTest broken-NodeType tests don't see the compile error
  because no compile happened.

Fix: only take the short-circuit path when def.LatestReleasePath is
non-empty. A populated LatestReleasePath means StartCompile (or a
release publish) has actually emitted an assembly for THIS NodeType;
only then is AssemblyLocation a real release DLL. Otherwise fall through
to compilationService.CompileAndGetConfigurations, which runs Roslyn,
returns the real Success/Failed shape, and lets the cluster behave.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
rbuergi added a commit that referenced this pull request May 10, 2026
…, parallelism, backoff)

NuGetAssemblyResolver:
  - Evict faulted/cancelled tasks from the per-key cache before
    returning. A transient feed failure (network, throttle, cancelled
    in-flight resolve) used to poison the cache for the resolver's
    lifetime — every subsequent call replayed the same exception.
  - Pass CancellationToken.None to the shared core task so a single
    caller's cancellation can't take down the resolution for
    others; per-caller `ct` projects via `task.WaitAsync(ct)`.
  - Switch DependencyBehavior from `Lowest` to `HighestMinor` so
    `#r` directives pick up patch-level security fixes via
    transitive dependencies without silently jumping major/minor.
  - Document that hydrated cache content is trusted to match
    (id, version) — flag for future content-hash verification if
    cache poisoning becomes a concern.

LinkedInPublisher / XPublisher (LinkedIn already committed in batch A
for the dynamic+PII parts; this commit adds the 401 retry):
  - SendWith401RetryAsync: on the FIRST 401 response from a publish,
    force-refresh the token (zero ExpiresAt before EnsureFreshAsync)
    and retry once. Closes the race where the access token's TTL
    expired between EnsureFreshAsync and the actual API call.

PostStatsRefresher:
  - Process due-refresh targets via Parallel.ForEachAsync bounded
    by SocialOptions.StatsRefreshDegreeOfParallelism (default 8),
    so a slow API + large refresh window can't let one tick
    overshoot the next interval.
  - Per-target failure backoff via a ConcurrentDictionary of
    last-failure timestamps — targets that failed within
    StatsRefreshFailureBackoff (default 15 min) skip the next tick.
    Stops a degraded platform from generating thousands of repeat
    warnings every cycle while the underlying issue is fixed.
    Success clears the backoff entry.

SocialOptions: add StatsRefreshDegreeOfParallelism (8) and
StatsRefreshFailureBackoff (15 min) knobs.

Addresses PR #95 review items #12, #13, #14, #16, #17, #18.
(#15 XPublisher defensive parse + the LinkedIn dynamic / PII items
were already in commit 478fdaa.)

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
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