Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -364,10 +364,7 @@ export class SharedPropertyTree extends SharedObject {
this._root._reportDirtinessToView();
}

/**
* {@inheritDoc @fluidframework/shared-object-base#SharedObject.processMessagesCore}
*/
protected processMessagesCore(messagesCollection: IRuntimeMessageCollection): void {
protected override processMessagesCore(messagesCollection: IRuntimeMessageCollection): void {
const { envelope, messagesContent } = messagesCollection;
for (const messageContent of messagesContent) {
this.processMessage(envelope, messageContent.contents);
Expand Down
5 changes: 1 addition & 4 deletions experimental/dds/ot/ot/src/ot.ts
Original file line number Diff line number Diff line change
Expand Up @@ -107,10 +107,7 @@ export abstract class SharedOT<TState, TOp> extends SharedObject {

protected onDisconnect(): void {}

/**
* {@inheritDoc @fluidframework/shared-object-base#SharedObject.processMessagesCore}
*/
protected processMessagesCore(messagesCollection: IRuntimeMessageCollection): void {
protected override processMessagesCore(messagesCollection: IRuntimeMessageCollection): void {
const { envelope, local, messagesContent } = messagesCollection;
for (const messageContent of messagesContent) {
this.processMessage(envelope, messageContent, local);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -665,6 +665,7 @@ export class SharedTree extends SharedObject<ISharedTreeEvents> implements NodeI
get logViewer(): LogViewer;
mergeEditsFrom(other: SharedTree, edits: Iterable<Edit<InternalizedChange>>, stableIdRemapper?: (id: StableNodeId) => StableNodeId): EditId[];
protected onDisconnect(): void;
// (undocumented)
protected processMessagesCore(messagesCollection: IRuntimeMessageCollection): void;
protected registerCore(): void;
// (undocumented)
Expand Down
5 changes: 1 addition & 4 deletions experimental/dds/tree/src/SharedTree.ts
Original file line number Diff line number Diff line change
Expand Up @@ -999,10 +999,7 @@ export class SharedTree extends SharedObject<ISharedTreeEvents> implements NodeI
}
}

/**
* {@inheritDoc @fluidframework/shared-object-base#SharedObject.processMessagesCore}
*/
protected processMessagesCore(messagesCollection: IRuntimeMessageCollection): void {
protected override processMessagesCore(messagesCollection: IRuntimeMessageCollection): void {
const { envelope, messagesContent } = messagesCollection;
for (const messageContent of messagesContent) {
this.processMessage(envelope, messageContent.contents);
Expand Down
5 changes: 1 addition & 4 deletions packages/dds/cell/src/cell.ts
Original file line number Diff line number Diff line change
Expand Up @@ -242,10 +242,7 @@ export class SharedCell<T = any>
}
}

/**
* {@inheritDoc @fluidframework/shared-object-base#SharedObject.processMessagesCore}
*/
protected processMessagesCore(messagesCollection: IRuntimeMessageCollection): void {
protected override processMessagesCore(messagesCollection: IRuntimeMessageCollection): void {
const { envelope, local, messagesContent } = messagesCollection;
for (const messageContent of messagesContent) {
this.processMessage(envelope, messageContent, local);
Expand Down
5 changes: 1 addition & 4 deletions packages/dds/counter/src/counter.ts
Original file line number Diff line number Diff line change
Expand Up @@ -148,10 +148,7 @@ export class SharedCounter
*/
protected onDisconnect(): void {}

/**
* {@inheritDoc @fluidframework/shared-object-base#SharedObject.processMessagesCore}
*/
protected processMessagesCore(messagesCollection: IRuntimeMessageCollection): void {
protected override processMessagesCore(messagesCollection: IRuntimeMessageCollection): void {
const { envelope, local, messagesContent } = messagesCollection;
for (const messageContent of messagesContent) {
this.processMessage(envelope, messageContent, local);
Expand Down
5 changes: 1 addition & 4 deletions packages/dds/ink/src/ink.ts
Original file line number Diff line number Diff line change
Expand Up @@ -209,10 +209,7 @@ export class Ink extends SharedObject<IInkEvents> implements IInk {
this.inkData = new InkData(content);
}

/**
* {@inheritDoc @fluidframework/shared-object-base#SharedObject.processMessagesCore}
*/
protected processMessagesCore(messagesCollection: IRuntimeMessageCollection): void {
protected override processMessagesCore(messagesCollection: IRuntimeMessageCollection): void {
const { envelope, local, messagesContent } = messagesCollection;
for (const messageContent of messagesContent) {
this.processMessage(envelope, messageContent, local);
Expand Down
5 changes: 1 addition & 4 deletions packages/dds/legacy-dds/src/array/sharedArray.ts
Original file line number Diff line number Diff line change
Expand Up @@ -572,10 +572,7 @@ export class SharedArrayClass<T extends SerializableTypeForSharedArray>
return this.idToEntryMap.get(entryId) as SharedArrayEntry<T>;
}

/**
* {@inheritDoc @fluidframework/shared-object-base#SharedObject.processMessagesCore}
*/
protected processMessagesCore(messagesCollection: IRuntimeMessageCollection): void {
protected override processMessagesCore(messagesCollection: IRuntimeMessageCollection): void {
const { envelope, local, messagesContent } = messagesCollection;
for (const messageContent of messagesContent) {
this.processMessage(envelope, messageContent, local);
Expand Down
5 changes: 1 addition & 4 deletions packages/dds/legacy-dds/src/signal/sharedSignal.ts
Original file line number Diff line number Diff line change
Expand Up @@ -132,10 +132,7 @@ export class SharedSignalClass<T extends SerializableTypeForSharedSignal = any>
*/
protected onDisconnect(): void {}

/**
* {@inheritDoc @fluidframework/shared-object-base#SharedObject.processMessagesCore}
*/
protected processMessagesCore(messagesCollection: IRuntimeMessageCollection): void {
protected override processMessagesCore(messagesCollection: IRuntimeMessageCollection): void {
const { envelope, local, messagesContent } = messagesCollection;
for (const messageContent of messagesContent) {
this.processMessage(envelope, messageContent, local);
Expand Down
3 changes: 0 additions & 3 deletions packages/dds/map/src/directory.ts
Original file line number Diff line number Diff line change
Expand Up @@ -788,9 +788,6 @@ export class SharedDirectory
}
}

/**
* {@inheritDoc @fluidframework/shared-object-base#SharedObject.processMessagesCore}
*/
protected override processMessagesCore(messagesCollection: IRuntimeMessageCollection): void {
const { envelope, local, messagesContent } = messagesCollection;
for (const messageContent of messagesContent) {
Expand Down
3 changes: 0 additions & 3 deletions packages/dds/map/src/map.ts
Original file line number Diff line number Diff line change
Expand Up @@ -285,9 +285,6 @@ export class SharedMap extends SharedObject<ISharedMapEvents> implements IShared
this.kernel.tryApplyStashedOp(content as IMapOperation);
}

/**
* {@inheritDoc @fluidframework/shared-object-base#SharedObject.processMessagesCore}
*/
protected override processMessagesCore(messagesCollection: IRuntimeMessageCollection): void {
const { envelope, local, messagesContent } = messagesCollection;
for (const messageContent of messagesContent) {
Expand Down
5 changes: 1 addition & 4 deletions packages/dds/matrix/src/matrix.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1001,10 +1001,7 @@ export class SharedMatrix<T = any>
);
}

/**
* {@inheritDoc @fluidframework/shared-object-base#SharedObject.processMessagesCore}
*/
protected processMessagesCore(messagesCollection: IRuntimeMessageCollection): void {
protected override processMessagesCore(messagesCollection: IRuntimeMessageCollection): void {
const { envelope, local, messagesContent } = messagesCollection;
for (const messageContent of messagesContent) {
this.processMessage(envelope, messageContent, local);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ export class ConsensusOrderedCollection<T = any> extends SharedObject<IConsensus
protected loadCore(storage: IChannelStorageService): Promise<void>;
// (undocumented)
protected onDisconnect(): void;
// (undocumented)
protected processMessagesCore(messagesCollection: IRuntimeMessageCollection): void;
// (undocumented)
protected release(acquireId: string): void;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -305,10 +305,7 @@ export class ConsensusOrderedCollection<T = any>
}
}

/**
* {@inheritDoc @fluidframework/shared-object-base#SharedObject.processMessagesCore}
*/
protected processMessagesCore(messagesCollection: IRuntimeMessageCollection): void {
protected override processMessagesCore(messagesCollection: IRuntimeMessageCollection): void {
const { envelope, local, messagesContent } = messagesCollection;
for (const messageContent of messagesContent) {
this.processMessage(envelope, messageContent, local);
Expand Down
5 changes: 1 addition & 4 deletions packages/dds/pact-map/src/pactMap.ts
Original file line number Diff line number Diff line change
Expand Up @@ -389,10 +389,7 @@ export class PactMapClass<T = unknown>
this.submitLocalMessage(pactMapOp, localOpMetadata);
}

/**
* {@inheritDoc @fluidframework/shared-object-base#SharedObject.processMessagesCore}
*/
protected processMessagesCore(messagesCollection: IRuntimeMessageCollection): void {
protected override processMessagesCore(messagesCollection: IRuntimeMessageCollection): void {
const { envelope, local, messagesContent } = messagesCollection;
for (const messageContent of messagesContent) {
this.processMessage(envelope, messageContent, local);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ export class ConsensusRegisterCollectionClass<T> extends SharedObject<IConsensus
protected loadCore(storage: IChannelStorageService): Promise<void>;
// (undocumented)
protected onDisconnect(): void;
// (undocumented)
protected processMessagesCore(messagesCollection: IRuntimeMessageCollection): void;
read(key: string, readPolicy?: ReadPolicy): T | undefined;
// (undocumented)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -275,10 +275,7 @@ export class ConsensusRegisterCollection<T>

protected onDisconnect(): void {}

/**
* {@inheritDoc @fluidframework/shared-object-base#SharedObject.processMessagesCore}
*/
protected processMessagesCore(messagesCollection: IRuntimeMessageCollection): void {
protected override processMessagesCore(messagesCollection: IRuntimeMessageCollection): void {
const { envelope, local, messagesContent } = messagesCollection;
for (const messageContent of messagesContent) {
this.processMessage(envelope, messageContent, local);
Expand Down
5 changes: 1 addition & 4 deletions packages/dds/sequence/src/sequence.ts
Original file line number Diff line number Diff line change
Expand Up @@ -865,10 +865,7 @@ export abstract class SharedSegmentSequence<T extends ISegment>
}
}

/**
* {@inheritDoc @fluidframework/shared-object-base#SharedObject.processMessagesCore}
*/
protected processMessagesCore(messagesCollection: IRuntimeMessageCollection): void {
protected override processMessagesCore(messagesCollection: IRuntimeMessageCollection): void {
const { envelope, local, messagesContent } = messagesCollection;
for (const messageContent of messagesContent) {
this.processMessage(envelope, messageContent, local);
Expand Down
4 changes: 2 additions & 2 deletions packages/dds/shared-object-base/src/test/sharedObject.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ class MySharedObject extends SharedObject {
protected async loadCore(services: IChannelStorageService): Promise<void> {
throw new Error("Method not implemented.");
}
protected processMessagesCore(messagesCollection: IRuntimeMessageCollection): void {
protected override processMessagesCore(messagesCollection: IRuntimeMessageCollection): void {
throw new Error("Method not implemented.");
}
protected onDisconnect(): void {
Expand Down Expand Up @@ -101,7 +101,7 @@ class MySharedObjectCore extends SharedObjectCore {
protected async loadCore(services: IChannelStorageService): Promise<void> {
throw new Error("Method not implemented.");
}
protected processMessagesCore(messagesCollection: IRuntimeMessageCollection): void {
protected override processMessagesCore(messagesCollection: IRuntimeMessageCollection): void {
throw new Error("Method not implemented.");
}
protected onDisconnect(): void {
Expand Down
5 changes: 1 addition & 4 deletions packages/dds/shared-summary-block/src/sharedSummaryBlock.ts
Original file line number Diff line number Diff line change
Expand Up @@ -100,10 +100,7 @@ export class SharedSummaryBlockClass extends SharedObject implements ISharedSumm
*/
protected onDisconnect(): void {}

/**
* {@inheritDoc @fluidframework/shared-object-base#SharedObject.processMessagesCore}
*/
protected processMessagesCore(messagesCollection: IRuntimeMessageCollection): void {
protected override processMessagesCore(messagesCollection: IRuntimeMessageCollection): void {
throw new Error("shared summary block should not generate any ops.");
}

Expand Down
5 changes: 1 addition & 4 deletions packages/dds/task-manager/src/taskManager.ts
Original file line number Diff line number Diff line change
Expand Up @@ -697,10 +697,7 @@ export class TaskManagerClass
}
}

/**
* {@inheritDoc @fluidframework/shared-object-base#SharedObject.processMessagesCore}
*/
protected processMessagesCore(messagesCollection: IRuntimeMessageCollection): void {
protected override processMessagesCore(messagesCollection: IRuntimeMessageCollection): void {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is for TaskManagerClass which is exported as @legacy+beta and therefore until tooling is fixed inheritDoc is needed to get doc generation, at per last discussion of this 3/18/2025.
It would be nice if the api report noted that this method is now undocumented OR if we checked in the generated doc json file that shows what will be relayed for documentation generation so that we could see this delta.
All other cases for exported classes need similar keeping. (Also, better if we just stop exporting classes - especially sealed ones.)
cc: @Josmithr

Copy link
Contributor

@Josmithr Josmithr Feb 24, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't understand. Release tag levels have no impact on whether or not something gets API documentation. API-Extractor does not automatically inherit documentation in any circumstances. So, this change does have the effect of removing explicit method documentation from the resulting API docs, but this is a trade-off we've made elsewhere (prioritizing intellisense over API docs). And it doesn't have anything to do with the release tagging.

Also note that type-level inheritance is captured by the API docs, so a reader can navigate to the base declaration (in this case, SharedObjectBase) to view the documentation. It's certainly a worse experience overall, but we are unfortunately required to make these trade-offs until one of the following:

  1. Intellisense actually supports TSDoc (rather than JSDoc)
  2. API-Extractor is updated to persist inheritance information more granularly
  3. We do hacky things in api-markdown-documenter to try to re-derive this information dynamically.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we get https://github.com/microsoft/FluidFramework/wiki/TSDoc-Guidelines#inheritDoc updated indicate when inheritDoc should be omitted to let the inheritance happen implicitly? Sounds like maybe we need it for package exported non-internal APIs? Or maybe just those APIs when crossing between packages?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@Josmithr, release tags are relevant because that indicates a non-internal use. We don't generate docs for @internal and will just rely on IntelliSense (that is happier without @inheritDoc).

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@jason-ha What @internal types are involved here?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we get https://github.com/microsoft/FluidFramework/wiki/TSDoc-Guidelines#inheritDoc updated indicate when inheritDoc should be omitted to let the inheritance happen implicitly? Sounds like maybe we need it for package exported non-internal APIs? Or maybe just those APIs when crossing between packages?

I'll file an item for myself to update the guidance for that and @override.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't know. I really only looked at this class. I do know that we have inheritDoc in places where it is detrimental.

Copy link
Contributor Author

@CraigMacomber CraigMacomber Feb 24, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

if the api report noted that this method is now undocumented

It does. I just failed to include the API report updates. That has been corrected.

That said, Tyler is working to make all these classes internal currently, so they will soon be out of the API reports :). We do not actually intend to support any non-internal implanters or callers of this API, but a few soon to be gone exports are keeping it in the legacy API at the moment.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe we don't have API reports for task-manager. I don't see a now undocumented note for this in an api.md file.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also, I don't have an issue with not having a comment for this. Just want to make sure we know what we are doing.

const { envelope, local, messagesContent } = messagesCollection;
for (const messageContent of messagesContent) {
this.processMessage(envelope, messageContent, local);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -155,7 +155,7 @@ class TestIncrementalSummaryBlobDDS extends SharedObject {
this.blobMap.set(blob, blobContent);
}
}
protected processMessagesCore(messagesCollection: IRuntimeMessageCollection): void {
protected override processMessagesCore(messagesCollection: IRuntimeMessageCollection): void {
const { envelope, messagesContent } = messagesCollection;
for (const messageContent of messagesContent) {
if (envelope.type === MessageType.Operation) {
Expand Down Expand Up @@ -374,7 +374,7 @@ class TestIncrementalSummaryTreeDDSClass extends SharedObject {
return node;
}

protected processMessagesCore(messagesCollection: IRuntimeMessageCollection): void {
protected override processMessagesCore(messagesCollection: IRuntimeMessageCollection): void {
const { envelope, messagesContent } = messagesCollection;
for (const messageContent of messagesContent) {
if (envelope.type === MessageType.Operation) {
Expand Down
Loading