[SuperEditor] [iOS] Composing Korean character the start of node throws

Package Version
main branch with commit hash https://github.com/superlistapp/super_editor/commit/2cb93e23ba2442e911c1bfcaf107c247adc6d131
To Reproduce

Go to "Empty Document" demo
Place the selection in the editor
Type "ㅅㅛ"

Actual behavior
Exception is thrown:
======== Exception caught by services library ======================================================
The following _TypeError was thrown during method call TextInputClient.updateEditingStateWithDeltas:
Null check operator used on a null value

When the exception was thrown, this was the stack:
#0      TextDeltasDocumentEditor._applyInsertion (package:super_editor/src/default_editor/document_ime/document_delta_editing.dart:153:6)
#1      TextDeltasDocumentEditor.applyDeltas (package:super_editor/src/default_editor/document_ime/document_delta_editing.dart:80:9)
#2      DocumentImeInputClient.updateEditingValueWithDeltas (package:super_editor/src/default_editor/document_ime/document_ime_communication.dart:219:30)
#3      DeltaTextInputClientDecorator.updateEditingValueWithDeltas (package:super_editor/src/default_editor/document_ime/ime_decoration.dart:129:14)
#4      TextInput._handleTextInputInvocation (package:flutter/src/services/text_input.dart:1870:63)
#5      TextInput._loudlyHandleTextInputInvocation (package:flutter/src/services/text_input.dart:1759:20)
#6      MethodChannel._handleAsMethodCall (package:flutter/src/services/platform_channel.dart:571:55)
#7      MethodChannel.setMethodCallHandler.<anonymous closure> (package:flutter/src/services/platform_channel.dart:564:34)
call: MethodCall(TextInputClient.updateEditingStateWithDeltas, [3, {deltas: [{selectionBase: 1, oldText: . ㅅ, selectionAffinity: TextAffinity.downstream, deltaEnd: -1, deltaText: , deltaStart: -1, composingExtent: -1, selectionIsDirectional: false, selectionExtent: 3, composingBase: -1}, {selectionBase: 1, oldText: . ㅅ, selectionAffinity: TextAffinity.downstream, deltaEnd: 3, deltaText: , deltaStart: 1, composingExtent: -1, selectionIsDirectional: false, selectionExtent: 1, composingBase: -1}, {selectionBase: 2, oldText: ., selectionAffinity: TextAffinity.downstream, deltaEnd: 1, deltaText:  , deltaStart: 1, composingExtent: -1, selectionIsDirectional: false, selectionExtent: 2, composingBase: -1}, {selectionBase: 3, oldText: . , selectionAffinity: TextAffinity.downstream, deltaEnd: 2, deltaText: 쇼, deltaStart: 2, composingExtent: -1, selectionIsDirectional: false, selectionExtent: 3, composingBase: -1}]}])
====================================================================================================

IME logs
flutter: (18.162) editor.ime > FINE: Received edit deltas from platform: 1 deltas
flutter: (18.162) editor.ime > FINE: TextEditingDeltaInsertion#07448(oldText: ., textInserted: ㅅ, insertionOffset: 2, selection: TextSelection.collapsed(offset: 3, affinity: TextAffinity.downstream, isDirectional: false), composing: TextRange(start: -1, end: -1))
flutter: (18.162) editor.ime > FINE: IME value before applying deltas: TextEditingValue(text: ┤. ├, selection: TextSelection.collapsed(offset: 2, affinity: TextAffinity.downstream, isDirectional: false), composing: TextRange(start: -1, end: -1))
flutter: (18.163) editor.ime > FINE: ===================================================
flutter: (18.163) editor.ime > INFO: Applying 1 IME deltas to document
flutter: (18.163) editor.ime.deltas > FINE: Incoming deltas:
flutter: (18.163) editor.ime.deltas > FINE: Incoming deltas:
flutter: (18.163) editor.ime.deltas > FINE: TextEditingDeltaInsertion#07448(oldText: ., textInserted: ㅅ, insertionOffset: 2, selection: TextSelection.collapsed(offset: 3, affinity: TextAffinity.downstream, isDirectional: false), composing: TextRange(start: -1, end: -1))
flutter: (18.163) editor.ime.deltas > FINE: TextEditingDeltaInsertion#07448(oldText: ., textInserted: ㅅ, insertionOffset: 2, selection: TextSelection.collapsed(offset: 3, affinity: TextAffinity.downstream, isDirectional: false), composing: TextRange(start: -1, end: -1))
flutter: (18.164) editor.ime > FINE: Serializing document to perform IME operations
flutter: (18.164) editor.ime > FINE: Creating an IME model from document, selection, and composing region
flutter: (18.165) editor.ime > FINE: IME serialization:
'. '
flutter: (18.165) editor.ime > FINE: Converting doc selection to ime selection: [DocumentSelection] -
  base: ([DocumentPosition] - node: "1", position: (TextPosition(offset: 0, affinity: TextAffinity.downstream))),
  extent: ([DocumentPosition] - node: "1", position: (TextPosition(offset: 0, affinity: TextAffinity.downstream)))
flutter: (18.165) editor.ime > FINE: Converting DocumentPosition to IME TextPosition: [DocumentPosition] - node: "1", position: (TextPosition(offset: 0, affinity: TextAffinity.downstream))
flutter: (18.165) editor.ime > FINE: Converting DocumentPosition to IME TextPosition: [DocumentPosition] - node: "1", position: (TextPosition(offset: 0, affinity: TextAffinity.downstream))
flutter: (18.165) editor.ime > FINE: Start IME position: TextPosition(offset: 2, affinity: TextAffinity.downstream)
flutter: (18.165) editor.ime > FINE: End IME position: TextPosition(offset: 2, affinity: TextAffinity.downstream)
flutter: (18.165) editor.ime > FINE: Converting doc range to ime range: null
flutter: (18.165) editor.ime > FINE: The document range is null. Returning an empty IME range.
flutter: (18.165) editor.ime > INFO: ---------------------------------------------------
flutter: (18.166) editor.ime > INFO: Applying delta: TextEditingDeltaInsertion#07448(oldText: ., textInserted: ㅅ, insertionOffset: 2, selection: TextSelection.collapsed(offset: 3, affinity: TextAffinity.downstream, isDirectional: false), composing: TextRange(start: -1, end: -1))
flutter: (18.166) editor.ime > FINE: Inserted text: "ㅅ"
flutter: (18.166) editor.ime > FINE: Insertion offset: 2
flutter: (18.166) editor.ime > FINE: Selection: TextSelection.collapsed(offset: 3, affinity: TextAffinity.downstream, isDirectional: false)
flutter: (18.166) editor.ime > FINE: Composing: TextRange(start: -1, end: -1)
flutter: (18.166) editor.ime > FINE: Old text: ". "
flutter: (18.167) editor.ime > FINE: Inserting text: 'ㅅ', at insertion offset: 2, with ime selection: TextSelection.collapsed(offset: 3, affinity: TextAffinity.downstream, isDirectional: false)
flutter: (18.167) editor.ime > FINE: Converting IME insertion offset into a DocumentSelection
flutter: (18.167) editor.ime > FINE: Creating doc selection from IME selection: TextSelection.collapsed(offset: 2, affinity: TextAffinity.downstream, isDirectional: false)
flutter: (18.167) editor.ime > FINE: The IME only selected visible characters. No adjustment necessary.
flutter: (18.168) editor.ime > FINE: Calculating the base DocumentPosition for the DocumentSelection
flutter: (18.168) editor.ime > FINE: Selection base: [DocumentPosition] - node: "1", position: (TextPosition(offset: 0, affinity: TextAffinity.downstream))
flutter: (18.168) editor.ime > FINE: Calculating the extent DocumentPosition for the DocumentSelection
flutter: (18.168) editor.ime > FINE: Selection extent: [DocumentPosition] - node: "1", position: (TextPosition(offset: 0, affinity: TextAffinity.downstream))
flutter: (18.168) editor.ime > FINE: Inserting "ㅅ" at position "[DocumentSelection] -
  base: ([DocumentPosition] - node: "1", position: (TextPosition(offset: 0, affinity: TextAffinity.downstream))),
  extent: ([DocumentPosition] - node: "1", position: (TextPosition(offset: 0, affinity: TextAffinity.downstream)))"
flutter: (18.168) editor.ime > FINE: Updating the Document Composer's selection to place caret at insertion offset:
[DocumentSelection] -
  base: ([DocumentPosition] - node: "1", position: (TextPosition(offset: 0, affinity: TextAffinity.downstream))),
  extent: ([DocumentPosition] - node: "1", position: (TextPosition(offset: 0, affinity: TextAffinity.downstream)))
flutter: (18.169) editor.ime > FINE: Inserting the text at the Document Composer's selection
flutter: (18.170) editor.ime > FINE: Insertion successful? true
flutter: (18.170) editor.ime > FINE: Creating an IME model from document, selection, and composing region
flutter: (18.171) editor.ime > FINE: IME serialization:
'. ㅅ'
flutter: (18.171) editor.ime > FINE: Creating doc range from IME range: TextRange(start: -1, end: -1)
flutter: (18.171) editor.ime > FINE: The IME range is empty. Returning null document range.
flutter: (18.171) editor.ime > INFO: ---------------------------------------------------
flutter: (18.171) editor.ime > FINE: After applying all deltas, converting the final composing region to a document range.
flutter: (18.172) editor.ime > FINE: Raw IME delta composing region: TextRange(start: -1, end: -1)
flutter: (18.172) editor.ime > FINE: Creating doc range from IME range: TextRange(start: -1, end: -1)
flutter: (18.172) editor.ime > FINE: The IME range is empty. Returning null document range.
flutter: (18.172) editor.ime > FINE: Document composing region: null
flutter: (18.172) editor.ime > FINE: ===================================================
flutter: (18.172) editor.ime > FINE: [DocumentImeInputClient] - Serializing and sending document and selection to IME
flutter: (18.172) editor.ime > FINE: [DocumentImeInputClient] - Selection: [DocumentSelection] -
  base: ([DocumentPosition] - node: "1", position: (TextPosition(offset: 1, affinity: TextAffinity.downstream))),
  extent: ([DocumentPosition] - node: "1", position: (TextPosition(offset: 1, affinity: TextAffinity.downstream)))
flutter: (18.173) editor.ime > FINE: [DocumentImeInputClient] - Composing region: null
flutter: (18.173) editor.ime > FINE: Creating an IME model from document, selection, and composing region
flutter: (18.173) editor.ime > FINE: IME serialization:
'. ㅅ'
flutter: (18.173) editor.ime > FINE: [DocumentImeInputClient] - Adding invisible characters?: true
flutter: (18.173) editor.ime > FINE: Creating TextEditingValue from document. Selection: [DocumentSelection] -
  base: ([DocumentPosition] - node: "1", position: (TextPosition(offset: 1, affinity: TextAffinity.downstream))),
  extent: ([DocumentPosition] - node: "1", position: (TextPosition(offset: 1, affinity: TextAffinity.downstream)))
flutter: (18.173) editor.ime > FINE: Text:
'. ㅅ'
flutter: (18.173) editor.ime > FINE: Converting doc selection to ime selection: [DocumentSelection] -
  base: ([DocumentPosition] - node: "1", position: (TextPosition(offset: 1, affinity: TextAffinity.downstream))),
  extent: ([DocumentPosition] - node: "1", position: (TextPosition(offset: 1, affinity: TextAffinity.downstream)))
flutter: (18.174) editor.ime > FINE: Converting DocumentPosition to IME TextPosition: [DocumentPosition] - node: "1", position: (TextPosition(offset: 1, affinity: TextAffinity.downstream))
flutter: (18.174) editor.ime > FINE: Converting DocumentPosition to IME TextPosition: [DocumentPosition] - node: "1", position: (TextPosition(offset: 1, affinity: TextAffinity.downstream))
flutter: (18.174) editor.ime > FINE: Start IME position: TextPosition(offset: 3, affinity: TextAffinity.downstream)
flutter: (18.174) editor.ime > FINE: End IME position: TextPosition(offset: 3, affinity: TextAffinity.downstream)
flutter: (18.174) editor.ime > FINE: Selection: TextSelection.collapsed(offset: 3, affinity: TextAffinity.downstream, isDirectional: false)
flutter: (18.175) editor.ime > FINE: Converting doc range to ime range: null
flutter: (18.175) editor.ime > FINE: The document range is null. Returning an empty IME range.
flutter: (18.175) editor.ime > FINE: Composing region: TextRange(start: -1, end: -1)
flutter: (18.175) editor.ime > FINE: [DocumentImeInputClient] - Sending IME serialization:
flutter: (18.175) editor.ime > FINE: [DocumentImeInputClient] - TextEditingValue(text: ┤. ㅅ├, selection: TextSelection.collapsed(offset: 3, affinity: TextAffinity.downstream, isDirectional: false), composing: TextRange(start: -1, end: -1))
flutter: (18.175) editor.ime > FINE: Wants to send a value to IME: TextEditingValue(text: ┤. ㅅ├, selection: TextSelection.collapsed(offset: 3, affinity: TextAffinity.downstream, isDirectional: false), composing: TextRange(start: -1, end: -1))
flutter: (18.175) editor.ime > FINE: The current local IME value: TextEditingValue(text: ┤. ├, selection: TextSelection.collapsed(offset: 2, affinity: TextAffinity.downstream, isDirectional: false), composing: TextRange(start: -1, end: -1))
flutter: (18.175) editor.ime > FINE: The current platform IME value: TextEditingValue(text: ┤. ├, selection: TextSelection.collapsed(offset: 2, affinity: TextAffinity.downstream, isDirectional: false), composing: TextRange(start: -1, end: -1))
flutter: (18.176) editor.ime > FINE: Ignoring new TextEditingValue because it's the same as the existing one: TextEditingValue(text: ┤. ㅅ├, selection: TextSelection.collapsed(offset: 3, affinity: TextAffinity.downstream, isDirectional: false), composing: TextRange(start: -1, end: -1))
flutter: (18.176) editor.ime > FINE: [DocumentImeInputClient] - Done sending document to IME
flutter: (20.040) editor.ime > FINE: Received edit deltas from platform: 4 deltas
flutter: (20.041) editor.ime > FINE: TextEditingDeltaNonTextUpdate#3c92c(oldText: . ㅅ, selection: TextSelection(baseOffset: 1, extentOffset: 3, isDirectional: false), composing: TextRange(start: -1, end: -1))
flutter: (20.041) editor.ime > FINE: TextEditingDeltaDeletion#6c44f(oldText: . ㅅ, textDeleted:  ㅅ, deletedRange: TextRange(start: 1, end: 3), selection: TextSelection.collapsed(offset: 1, affinity: TextAffinity.downstream, isDirectional: false), composing: TextRange(start: -1, end: -1))
flutter: (20.041) editor.ime > FINE: TextEditingDeltaInsertion#06a43(oldText: ., textInserted:, insertionOffset: 1, selection: TextSelection.collapsed(offset: 2, affinity: TextAffinity.downstream, isDirectional: false), composing: TextRange(start: -1, end: -1))
flutter: (20.041) editor.ime > FINE: TextEditingDeltaInsertion#9148f(oldText: ., textInserted: 쇼, insertionOffset: 2, selection: TextSelection.collapsed(offset: 3, affinity: TextAffinity.downstream, isDirectional: false), composing: TextRange(start: -1, end: -1))
flutter: (20.041) editor.ime > FINE: IME value before applying deltas: TextEditingValue(text: ┤. ㅅ├, selection: TextSelection.collapsed(offset: 3, affinity: TextAffinity.downstream, isDirectional: false), composing: TextRange(start: -1, end: -1))
flutter: (20.041) editor.ime > FINE: ===================================================
flutter: (20.041) editor.ime > INFO: Applying 4 IME deltas to document
flutter: (20.042) editor.ime.deltas > FINE: Incoming deltas:
flutter: (20.042) editor.ime.deltas > FINE: Incoming deltas:
flutter: (20.042) editor.ime.deltas > FINE: TextEditingDeltaNonTextUpdate#3c92c(oldText: . ㅅ, selection: TextSelection(baseOffset: 1, extentOffset: 3, isDirectional: false), composing: TextRange(start: -1, end: -1))
flutter: (20.042) editor.ime.deltas > FINE: TextEditingDeltaNonTextUpdate#3c92c(oldText: . ㅅ, selection: TextSelection(baseOffset: 1, extentOffset: 3, isDirectional: false), composing: TextRange(start: -1, end: -1))
flutter: (20.042) editor.ime.deltas > FINE: TextEditingDeltaDeletion#6c44f(oldText: . ㅅ, textDeleted:  ㅅ, deletedRange: TextRange(start: 1, end: 3), selection: TextSelection.collapsed(offset: 1, affinity: TextAffinity.downstream, isDirectional: false), composing: TextRange(start: -1, end: -1))
flutter: (20.042) editor.ime.deltas > FINE: TextEditingDeltaDeletion#6c44f(oldText: .  ㅅ'
flutter: (20.045) editor.ime > FINE: Converting doc selection to ime selection: [DocumentSelection] -
  base: ([DocumentPosition] - node: "1", position: (TextPosition(offset: 1, affinity: TextAffinity.downstream))),
  extent: ([DocumentPosition] - node: "1", position: (TextPosition(offset: 1, affinity: TextAffinity.downstream)))
flutter: (20.045) editor.ime > FINE: Converting DocumentPosition to IME TextPosition: [DocumentPosition] - node: "1", position: (TextPosition(offset: 1, affinity: TextAffinity.downstream))
flutter: (20.045) editor.ime > FINE: Converting DocumentPosition to IME TextPosition: [DocumentPosition] - node: "1", position: (TextPosition(offset: 1, affinity: TextAffinity.downstream))
flutter: (20.045) editor.ime > FINE: Start IME position: TextPosition(offset: 3, affinity: TextAffinity.downstream)
flutter: (20.045) editor.ime > FINE: End IME position: TextPosition(offset: 3, affinity: TextAffinity.downstream)
flutter: (20.045) editor.ime > FINE: Converting doc range to ime range: null
flutter: (20.045) editor.ime > FINE: The document range is null. Returning an empty IME range.
flutter: (20.045) editor.ime > INFO: ---------------------------------------------------
flutter: (20.045) editor.ime > INFO: Applying delta: TextEditingDeltaNonTextUpdate#3c92c(oldText: . ㅅ, selection: TextSelection(baseOffset: 1, extentOffset: 3, isDirectional: false), composing: TextRange(start: -1, end: -1))
flutter: (20.046) editor.ime > FINE: Non-text change:
flutter: (20.046) editor.ime > FINE: OS-side selection - TextSelection(baseOffset: 1, extentOffset: 3, isDirectional: false)
flutter: (20.046) editor.ime > FINE: OS-side composing - TextRange(start: -1, end: -1)
flutter: (20.046) editor.ime > FINE: Creating doc selection from IME selection: TextSelection(baseOffset: 1, extentOffset: 3, isDirectional: false)
flutter: (20.046) editor.ime > FINE: Removing invisible characters from IME selection.
flutter: (20.046) editor.ime > FINE: Adjusted IME selection is: TextSelection(baseOffset: 2, extentOffset: 3, isDirectional: false)
flutter: (20.046) editor.ime > FINE: Calculating the base DocumentPosition for the DocumentSelection
flutter: (20.046) editor.ime > FINE: Selection base: [DocumentPosition] - node: "1", position: (TextPosition(offset: 0, affinity: TextAffinity.downstream))
flutter: (20.046) editor.ime > FINE: Calculating the extent DocumentPosition for the DocumentSelection
flutter: (20.047) editor.ime > FINE: Selection extent: [DocumentPosition] - node: "1", position: (TextPosition(offset: 1, affinity: TextAffinity.downstream))
flutter: (20.047) editor.ime > FINE: Creating doc range from IME range: TextRange(start: -1, end: -1)
flutter: (20.047) editor.ime > FINE: The IME range is empty. Returning null document range.
flutter: (20.048) editor.ime > INFO: ---------------------------------------------------
flutter: (20.048) editor.ime > INFO: ---------------------------------------------------
flutter: (20.048) editor.ime > INFO: Applying delta: TextEditingDeltaDeletion#6c44f(oldText: . ㅅ, textDeleted:  ㅅ, deletedRange: TextRange(start: 1, end: 3), selection: TextSelection.collapsed(offset: 1, affinity: TextAffinity.downstream, isDirectional: false), composing: TextRange(start: -1, end: -1))
flutter: (20.048) editor.ime > FINE: Delete delta:
Text deleted: ' ㅅ'
Deleted Range: TextRange(start: 1, end: 3)
Selection: TextSelection.collapsed(offset: 1, affinity: TextAffinity.downstream, isDirectional: false)
Composing: TextRange(start: -1, end: -1)
Old text: '. ㅅ'
flutter: (20.048) editor.ime > FINE: Creating doc selection from IME selection: TextSelection(baseOffset: 1, extentOffset: 3, isDirectional: false)
flutter: (20.048) editor.ime > FINE: Removing invisible characters from IME selection.
flutter: (20.048) editor.ime > FINE: Adjusted IME selection is: TextSelection(baseOffset: 2, extentOffset: 3, isDirectional: false)
flutter: (20.049) editor.ime > FINE: Calculating the base DocumentPosition for the DocumentSelection
flutter: (20.049) editor.ime > FINE: Selection base: [DocumentPosition] - node: "1", position: (TextPosition(offset: 0, affinity: TextAffinity.downstream))
flutter: (20.049) editor.ime > FINE: Calculating the extent DocumentPosition for the DocumentSelection
flutter: (20.049) editor.ime > FINE: Selection extent: [DocumentPosition] - node: "1", position: (TextPosition(offset: 1, affinity: TextAffinity.downstream))
flutter: (20.049) editor.ime > FINE: Doc selection to delete: [DocumentSelection] -
  base: ([DocumentPosition] - node: "1", position: (TextPosition(offset: 0, affinity: TextAffinity.downstream))),
  extent: ([DocumentPosition] - node: "1", position: (TextPosition(offset: 1, affinity: TextAffinity.downstream)))
flutter: (20.049) editor.ime > FINE: Running selection deletion operation
flutter: (20.050) editor.ime > FINE: Deletion operation complete
flutter: (20.051) editor.ime > INFO: ---------------------------------------------------
flutter: (20.051) editor.ime > INFO: ---------------------------------------------------
flutter: (20.051) editor.ime > INFO: Applying delta: TextEditingDeltaInsertion#06a43(oldText: ., textInserted:, insertionOffset: 1, selection: TextSelection.collapsed(offset: 2, affinity: TextAffinity.downstream, isDirectional: false), composing: TextRange(start: -1, end: -1))
flutter: (20.051) editor.ime > FINE: Inserted text: " "
flutter: (20.051) editor.ime > FINE: Insertion offset: 1
flutter: (20.051) editor.ime > FINE: Selection: TextSelection.collapsed(offset: 2, affinity: TextAffinity.downstream, isDirectional: false)
flutter: (20.051) editor.ime > FINE: Composing: TextRange(start: -1, end: -1)
flutter: (20.051) editor.ime > FINE: Old text: "."
flutter: (20.051) editor.ime > FINE: Inserting text: ' ', at insertion offset: 1, with ime selection: TextSelection.collapsed(offset: 2, affinity: TextAffinity.downstream, isDirectional: false)
flutter: (20.051) editor.ime > FINE: Converting IME insertion offset into a DocumentSelection
flutter: (20.052) editor.ime > FINE: Creating doc selection from IME selection: TextSelection.collapsed(offset: 1, affinity: TextAffinity.downstream, isDirectional: false)
flutter: (20.052) editor.ime > FINE: The IME only selected invisible characters. Returning a null document selection.

Expected behavior
"ㅅㅛ" gets converted to "쇼".
Platform
iOS for sure, but did not manage to test it on Android yet. Does not happen on macOS.
Flutter version
Flutter master commit e278279a48f0479386c249cf18f26b29c6f9018f.

@angelosilvestre from https://github.com/superlistapp/super_editor/issues/1825 we learned that the iOS simulator is buggy when it comes to Korean, i.e. it does not compose as you type.
I can only reproduce this on a real iOS device and I just use a Korean keyboard layout without any special setting.

@miguelcmedeiros Thanks for the clarification. I'll try this with a real iOS device later today.

@matthew-carroll This issue is caused by unexpected deltas generated by the IME. Upon typing "ㅅㅛ" the following batches of deltas are generated:
First batch:
[
  TextEditingDeltaInsertion(
    oldText: '. ',
    textInserted: 'ㅅ',
    insertionOffset: 2,
    selection: TextSelection.collapsed(offset: 3, affinity: TextAffinity.downstream),
    composing: TextRange(start: -1, end: -1),
  ),
]

Second batch:
[
  TextEditingDeltaNonTextUpdate(
    oldText: '. ㅅ',
    selection: TextSelection(baseOffset: 1, extentOffset: 3, isDirectional: false),
    composing: TextRange(start: -1, end: -1),
  ),
  TextEditingDeltaDeletion(
    oldText: '. ㅅ',
    deletedRange: TextRange(start: 1, end: 3),
    selection: TextSelection.collapsed(
      offset: 1,
      affinity: TextAffinity.downstream,
    ),
    composing: TextRange(start: -1, end: -1),
  ),
  TextEditingDeltaInsertion(
    oldText: '.',
    textInserted: ' ',
    insertionOffset: 1,
    selection: TextSelection.collapsed(
      offset: 2,
      affinity: TextAffinity.downstream,
    ),
    composing: TextRange(start: -1, end: -1),
  ),
  TextEditingDeltaInsertion(
    oldText: '. ',
    textInserted: '쇼',
    insertionOffset: 2,
    selection: TextSelection.collapsed(
      offset: 3,
      affinity: TextAffinity.downstream,
    ),
    composing: TextRange(start: -1, end: -1),
  )
]

The second and third deltas are unexpected. First, the IME is deleting the range TextRange(start: 1, end: 3), which includes the space that is part of the invisible characters. Then, it inserts the space back. Since this insertion has an invalid offset (it happens on an "invisible" offset) we crash when we try to compute the insertion selection.
Should we file a Flutter ticket for this? Should we try to work around this?

@angelosilvestre we should do both. Let's file an issue and then let's work around this.

Filed https://github.com/flutter/flutter/issues/142894

@angelosilvestre did you happen to check this behavior on Android to see if it happens there too?

@matthew-carroll I tested it and it doesn't happen on Android.


Phase calbrate only on phase calibrators

It looks like COSMIC currently calibrates on any VLASS CALIBRATE* intent.
What different CALIBRATE intents has VLASS been seen to use? We should probably

Only calibrate COSMIC delay/phase from CALIBRATE_PHASE intents
Record uvh5 files for other (flux, polarization) calibrators, but not attempt to update COSMIC's delay/phase cals from them.

Has VLASS been using any calibrators which are not tagged with CALIBRATE_PHASE?

grepping /mnt/cosmic-storage-2/data0/logs/28Mar2023
grep ScanIntent:CALIBRATE observe_client.log | grep -v CALIBRATE_PHASE | grep CALIBRATE I see CALIBRATE_POL_LEAKAGE CALIBRATE_POL_ANGLE, CALIBRATE_FLUX.

Calibrate Flux would be good sources to save uvh5 files for even if we don't use.  But they are strong sources that could be used to calibrate phase.

Is preferred behaviour to calibrate COSMIC on CALIBRATE_FLUX, or just store these for later (is there a possibility they are extended / otherwise inappropriate for phase calibration?)

Either option. CALIBRATE_FLUX calibrators, in my experience, are still good for correct phases. But if it is easier to store one and use the other, that works too.  However, it is not uncommon to put the strong flux calibrator at the end of an observation run, which we would want to store, but wouldn't need to use as the observations would be complete.

OK @talonmyburgh, for VLASS, let's do in-the-loop calibration on CALIBRATE_PHASE or CALIBRATE_FLUX (and store the resultant uvh5 files)
Don't calibrate on CALIBRATE_POL* but record the uvh5 files (cos why not?).

Sure thing. Will create a second observation yaml that mimics the calibration one but only records and moves the files to the storage node for CALIBRATE_POL*.

Perfect, thanks. Can you please PR into this repo when it's in place so I
can vaguely keep track of what's going on?
On Wed, 29 Mar 2023 at 17:43, Talon @.***> wrote:

Sure thing. Will create a second observation yaml that mimics the
calibration one but only records and moves the files to the storage node
for CALIBRATE_POL*.
—
Reply to this email directly, view it on GitHub
https://github.com/COSMIC-SETI/active_observations/issues/1#issuecomment-1488943139,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAKWM7BHBKHTUYNRBU5U4N3W6RRCJANCNFSM6AAAAAAWL2I6JM
.
You are receiving this because you authored the thread.Message ID:
@.***>

Wont do anything yet @Chenoachem @jack-h as then we will miss the W51 CALIBRATE_BANDPASS intents... we would need to collude with @demorest to request that these "custom" observations use either of the calibration intents mentioned above...

I think CALIBRATE* should be fine.

To be clear, this was never about all calibration runs (particularly TCOS which we control), just vlass. The potential issue was raised that polarization calibrators used by vlass would be weak and would cause cause COSMIC to generate poor solutions. @demorest is this not the case? Happy to close this issue as a NO-OP!

No the pol cal sources should be plenty bright.

Polarization calibrators generally need to be even brighter than normal phase cal sources because polarization is at most ~10% of the total flux typically.  See https://science.nrao.edu/facilities/vla/docs/manuals/obsguide/modes/pol for more info.  Some of them are slightly resolved (for certain bands/configs) but I don't think they are large enough to cause big problems for us.

Alrighty. Closing this with nothing to do!

I'm a little late to the party, but can't flux calibrators be rather extended and therefore a poor choice for phase/delay calibration?

That was one of the issues raised but I'm deferring completely to Paul.


chore(RHTAPWATCH-494): Remove obsolete field dedup code

Description
All fields were once multivalue fields by default. This was a workaround to convert them all back to single value fields. We no longer have this problem. The issue was resolved between the log source (OCP) and Splunk by switching to the Vector collector.
Issue ticket number and link
Part of RHTAPWATCH-494.
Type of change

[x] General maintenance
[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] This change requires a documentation update

How Has This Been Tested?
git checkout main
./scripts/fetch-uj-records.sh > pre.json
git checkout RHTAPWATCH-494
./scripts/fetch-uj-records.sh > post.json

Compared a handful of matching events between pre.json and post.json.
Confirmed they're unchanged.
go test ./querygen
ok      github.com/redhat-appstudio/segment-bridge.git/querygen (cached)

Checklist:

[x] I have performed a self-review of my code
[x] I have commented my code, particularly in hard-to-understand areas
[x] I have made corresponding changes to the documentation
[x] I have added meaningful description with JIRA/GitHub issue key (if applicable)
[x] I have updated labels (if needed)

/lgtm


Improve buffer management

🤔 Expected Behavior

😯 Current Behavior

💁 Possible Solution

🔦 Context

💻 Examples

We might use: https://github.com/gfx-rs/gfx/blob/master/src/auxil/range-alloc/src/lib.rs

related to #217


Heroku  deployment

I want to deploy this bot to heroku and im unable to do it please help

Unfortunately I haven't used heroku enough to be able to help you. That being said, there are some older issues related to hosting the bot on heroku such as #74 that you could check out.


DINFRA Application

Project Abstract
DINFRA, decentralized infrastructure, is substrate orchestrated infrastructure, a decentralized alternative to public clouds.
Grant level

[ ] Level 1:  Up to $10,000, 2 approvals
[ ] Level 2:  Up to $30,000, 3 approvals
[x] Level 3:  Unlimited, 5 approvals (for >$100k: Web3 Foundation Council approval)

Application Checklist

[x] The application template has been copied and aptly renamed (project_name.md).
[x] I have read the application guidelines.
[x] Payment details have been provided (bank details via email or BTC, Ethereum (USDC/DAI) or Polkadot/Kusama (USDT) address in the application).
[x] The software delivered for this grant will be released under an open-source license specified in the application.
[x] The initial PR contains only one commit (squash and force-push if needed).
[x] The grant will only be announced once the first milestone has been accepted (see the announcement guidelines).
[ ] I prefer the discussion of this application to take place in a private Element/Matrix channel. My username is: @_______:matrix.org (change the homeserver if you use a different one)

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

@Noc2
I am happy to follow your advise and/or incorporate your feedback, but I will share how I have thought this application through first:

DINFRA's first phase, this project, is an MVP which is crucial for gaining community support.  I have thought in the w3f because deliverables all well reviewed, funds are paid post execution, and I sense the community understands it as a quality stamp. The second phase, bringing DINFRA to production, will be and order of magnitude bigger in effort, that I plan to take to the treasury after successful completion of first phase with w3f.

We believe we would benefit for SBP, and there will be a token created in next phase, however, we think of DINFRA as a common good parachain. I think it would be difficult have acceptance  if DINFRA was an independent venture.

With regards to pricing. The configuration of the team is atypical for an MVP. We have chosen 2 very senior profiles for this first phase, but at the same time, we made this first phase as short as possible. Apart of taking the right set of decisions from the start, it will be us who raise awareness and gain community support. This is not only for the Substrate community but also for OpenSource infrastructure community, thus I am bringing top talent in a effort to kick-start the DINFRA community with best possible chances. In any case we have priced the project as a whole and our estimation is more 4-6 months involvement before the next phase, despite initially targeting the engineering to be delivered in 3 months of effort.

Infrastructure is necessary until the next phase starts because this is an MVP to be demoed and allow the target audience to experiment and decide if they want to join our effort for the next phase. Just like substrate needs a testing rely chain. Selling the DINFRA concept to infrastructure players without having something to play with would be impossible. We will need to record the VIDEO and let the teams play/develop with the deliverables, considering or even testing quickly how easy it would be for them to integrate their infrastructure with DINFRA. We will pitch them, help them, and hopefully in the next phase there will be more parties of the ecosystem involved.

I am happy to add more details for the Reference Implementation of the Reactor, sure. Will also review the rest of deliverables.

I can see you also in Polkadot Direction channel, I will also ping you there.

@Noc2
I think I understand your point:

We believe DINFRA needs a token from a functional point of view. We are planing features such as Hardware Tokenisation to facilitate CapEx for providers, or Tokenizing idle infrastructure to fund a treasury and help projects, etc. I understand your concern that a Token may generate rejection from the community following our discussion, but I really think that the only viable token would belong to the community,  it would be created by the treasury on its conditions, and administer by the community the same way that our Treasuries work. I don't think DINFRA can survive on its own, I think it has to become a community tool. We have provided examples of projects that chose a different path. DINFRA will need community support/approval. Alternates solutions such as the IBP are generating concern for centralizing treasury resources, DINFRA would provide means for Treasuries to administer infrastructure in a Decentralized way. Of course non of this would work if the DINFRA team hijacks the token or offers it to investors, that's why we openly manifest we will not and DINFRA will be common good.

We can move the public testing of DINFRA from this project to the first Treasury proposal. We initially planned to go to the treasury with Infrastructure providers support, for which a public test net is useful.  In the worst case scenario we would have to introduce a public testing phase on treasury before launching the project for GA, which is doable.

After removing the Public testing from this project the funding will be adjusted. I Will reduce accordingly but not to a point in which I start damaging project viability. Let me look into it.

The deliverables form both phases are either Substrate or Substrate infrastructure, please note that they have been made generic as engineering "good practice".  Yes, the Deployment descriptors could hold anything, but we know we are  targeting Substrate infrastructure. I will however try to reflect your feedback in the development roadmap, an obvious way would be to provide Deployment descriptors for node deployments, for example.

I will come back to you with changes...

@Noc2  @semuelle
See updated,
I have tried to address all the feedback expressed by @Noc2 in the application while trying not to compromise viability of the project.

@Noc2 @semuelle I am a bit lost in this process. What is the next step?
Are you waiting on any additional input?
I may have not used the github workflow features as expected, perhaps.

@rvalle Thank you for this application, very interesting use case!
I am happy to approve it.
Also have a question about the subscription/payment system. How is pricing managed and how does the framework ensure that the consumer has enough funds to pay for the services. Centralized providers typically hold credit cards, manage quotas, and there's an underlying trust that the consumer will be billed their exact consumption after the fact. Feels like a hard problem to solve in a trustless framework no?

Thanks for your support @randombishop.
With regards to the use case, I agree with you it is interesting. Orchestrating multiple players using substrate for the goal of decentralization could be a killer use case for our community, in particular for industries that already enjoy certain degree of automation. Substrate could essentially offer alternatives to Uber or Airbnb, for example. Substrate could trigger a rebirth of the good and old cooperatives in a decentralized self governed fashion.
With regards to pricing (talking in general, not just this MVP), substrate would have the responsibility to award deployment contracts to providers. Pricing could be one of the factors for selection (i.e. max price allowed), among others such as geographical preferences  (i.e. non EU) or network topology preferences. (i.e. banned networks AWS and Google Cloud), and even a list of preferred providers. Ultimately, It must be possible to use on-chain consensus in the award process so that participants understand the process is fair. It could also be possible to resort to other more generic parameters such as available capacity, reputation metrics or participation in governance. At the same time the weight of those metrics  in the award process should be subject of governance.
Ensuring contracts are funded, in case of fix rate deployment contracts would work as follows:

An infrastructure consumer issues a Deployment Descriptor for deployment, and reserves an arbitrary amount RA of her choice.
The network awards the contract at block N with fix cost C. Cost per block can be therefore calculated, CB.
Infrastructure provider declares the deployment was successful at block  NB.
From then on, without any need for further transactions the network knows how the reserved amount RA should be split between the provider and consumer as a function of the current block number, the cost per block CB, and the deployment block NB.
The network also knows at which block number the deployment contract simply expires, when RA is projected to be fully spent.
The consumer can be informed about the date in which the deployment expires via UI.
The consumer is free to reserve more funds at will, and keep funding her contract, it is also capable to terminate the contract at will by removing  unspent funds from RA.
The provider would also be allowed to claim his part of RA at any time, in particular for long running deployment contracts, or after the contract has expired.

This would provide a very simple implementation of on-chain, variable-length, pay per use of services at fixed cost. And it can easily be complemented with minimum deployment period, minimum cancellation notice period, etc. It can be also complemented with more complex functionality such as witnesses (availability witness) and oracles (topology oracles), slashes, dispute handling, reputation, etc.
From fix pricing we could go to top-ups, as a way to limit price dynamics. For example it is already an industry practice to apply a surcharge for network traffic outside an "included" limit. We believe we could go a long with simple pricing strategies and almost avoid dynamic pricing altogether, perhaps the exception is elastic deployments where infrastructure would be scaled according to demand.
The MVP will implement the fix cost and award process in its most simple possible form, while leaving the door open to enhancements and contributions.

@rvalle thanks for your additional notes, good luck with your implementation and looking forward to seeing the results.
imo, elastic pay-per-use based on actual after-the-fact consumption is one of the most powerful features of cloud computing, and is particularly handy to onboard new projects. It's way more convenient to start at zero and pay as it scales than commit to servers constantly running at fixed costs. Would highly recommend designing for elastic pay-per-use in your first version rather than later... Could be done in similar ways you're proposing already by adding a layer of escrow and some kind of "trust but verify" the billing.
Anyways, just my 2 cents...

@randombishop Thanks for the feedback, we will raise priority to pay per use.

@randombishop I have been thinking a bit more about this, and I believe you are right. In fact, re-setting a new price for a deployment while running is quite easy... this is consistent, for example with updating VM settings in a cloud UI. That is simple enough. In a fixed contract the consumer has to sign (explicit agreement) to pricing change. In a dynamic contract, the provider is granted capability to do it unilaterally.... without requiring consumer signature, thus opening the possibility to  auto-scaling.
Furthermore, it would be possible to allow for dynamic changes within boundaries, and in future implementations witnesses could be involved in the auto scaling process. We definitely should be able to plan for this feature early.

@Noc2  @semuelle @keeganquigley @randombishop @dsm-w3f
Many thanks for your support and feedback!

Hi @rvalle just checking in to see how milestone 1 is coming along?

Hi  @keeganquigley, making progress. Expecting to post soon.
Got delayed by external to the project events, and earlier than usual holidays in the team. Nothing inherent to the project itself. Should be fine going forward.
Thanks for following up.

@keeganquigley polishing now, hoping to file before end of week.

Thanks for the update @rvalle sounds good!

Hi everybody, @keeganquigley ... we are making good progress.
We are targeting to deliver over the next 2 weeks.
Experiencing delays in time related to sub0, confusion over new SDK distribution, and our own learning curve. Effort invested in the project is in line with the planing.
We are enjoying the project and Substrate's potential and the results we are getting.
Will keep you posted.

Hi Again,  @keeganquigley , @Noc2... now starting to wrap up the delivery,
Yes, substrate/rust has a steep learning curve many mention, but we perceive the benefit as a game changer.
Will keep you posted.


Feat: Split instead of Delete (Selective Delete)

From using it to speed up my editing, I have found that removing all silent parts in the video can make the base edit more difficult to work with especially if the cuts are too small (default behaviour can be improved when using audio:threshold, but only to an extent).
A solution to this could be if the clip's duration is below a certain length, that it can split the start and end of the clip but not delete it, allowing the editor to remove manually when exported as an XML.
Adding a parameter named selective_delete can provide this functionality. There can also be additional parameters to change the behaviour of this parameter:

# An example prompt using the proposed feature:
stable-ts input.mp4 --selective_delete=true --export resolve

# This exports an XML file that can be used, in which some clips are split instead of cut to be manually removed by
the editor.

--selective_delete_threshold FLOAT : (default = 0.1) can determine the maximum duration of a non-removable clip.
--selective_delete_random BOOL: (default = false) Experimental Feature*: Will randomly keep or remove clips that meets the --selective_delete_threshold FLOAT
selective_delete can also be potentially used with start and end markers, allowing it to work at specific ranges of the video.
#Applies selective delete to the first 30 seconds of the video, cuts the video like normal afterwards.
stable-ts input.mp4 --selective_delete true start,30sec

#Applies selective delete to the last 30 seconds of the video, cuts the video before like normal.
stable-ts input.mp4 --selective_delete true -30sec,end

You can already do this for resolve.
auto-editor input.mp4 --silent-speed 1 --export resolve

You can already do this for resolve.
auto-editor input.mp4 --silent-speed 1 --export resolve

The issue with this is that it keeps all the silent clips in regardless of length. This could be a solution where if you want certain length clips to only be split and not cut. Unless there's a way to determine if a clip can be split instead of cut by duration already.

Quick Update: I found out that increasing the parameter mincut does this feature. We probably need more documentation on how mincut and minclip works because it took me a while to realize that it's there and what it does.


Some fun, simple, examples for common scripts and stuff!

Here's the one posed by Virtus Lab:

Imagine you have a common business problem to solve. You need to write a program that fetches text from a web service and then creates a file in the local filesystem with content and path based on the downloaded information.

Scala Toolkit is getting a bunch of tutorials / examples, we can cheat by copying those and then slapping on a parTraverse 😝

https://github.com/scalacenter/docs.scala-lang/issues/8

Is this gist of mine a good idea?
I felt the urge of being able to do
$ echo -e "foo\nbar" | mkString --prefix '{' --suffix '}' --delimiter "~"
{foo~bar}

with huge files, so I leveraged fs2 and ScalaNative to overkill the task 😇

had a quick go at the virtuslab example for the fun of it:
https://gist.github.com/Koroeskohr/c62025c48fc629658e92aad82786cd39

had a quick go at the virtuslab example for the fun of it: https://gist.github.com/Koroeskohr/c62025c48fc629658e92aad82786cd39

Thanks @Koroeskohr! I'll create an examples folder and add it.
I have some troubles running it though, I'm getting this 👇 running it with "3.2.2". Is it just me? 🤔
scala.MatchError: [Ljava.lang.String;@32fe9d0a (of class [Ljava.lang.String;)
	at Hello$.run$$anonfun$1$$anonfun$2(c62025c48fc629658e92aad82786cd39-main/virtuslab-example.scala:16)
	at >>$extension @ org.typelevel.keypool.KeyPool$Builder.keepRunning$1(KeyPool.scala:370)
	at run$ @ Hello$.run(c62025c48fc629658e92aad82786cd39-main/virtuslab-example.scala:10)
	at clear @ org.http4s.client.middleware.Retry$.retryLoop$1(Retry.scala:90)
	at clear @ org.http4s.client.middleware.Retry$.retryLoop$1(Retry.scala:90)
	at clear @ org.http4s.client.middleware.Retry$.retryLoop$1(Retry.scala:90)
	at >>$extension @ org.typelevel.keypool.KeyPool$Builder.keepRunning$1(KeyPool.scala:370)
	at run$ @ Hello$.run(c62025c48fc629658e92aad82786cd39-main/virtuslab-example.scala:10)
	at clear @ org.http4s.client.middleware.Retry$.retryLoop$1(Retry.scala:90)
	at clear @ org.http4s.client.middleware.Retry$.retryLoop$1(Retry.scala:90)
	at flatMap @ org.typelevel.keypool.KeyPool$.put(KeyPool.scala:277)
	at void @ org.typelevel.keypool.KeyPool$.reap(KeyPool.scala:187)
	at map @ org.typelevel.keypool.KeyPool$.take$$anonfun$2$$anonfun$2$$anonfun$1$$anonfun$3$$anonfun$1(KeyPool.scala:310)
	at get @ org.typelevel.keypool.KeyPool$.take$$anonfun$2$$anonfun$2$$anonfun$1$$anonfun$3(KeyPool.scala:305)

I'll create an examples folder and add it.

Alternatively, let's consider setting up a website with mdoc-checked examples. It will be easier to browse maybe?
https://typelevel.org/sbt-typelevel/site.html

I'll create an examples folder and add it.

Alternatively, let's consider setting up a website with mdoc-checked examples. It will be easier to browse maybe? Edit: and also enables us to add exposition.
https://typelevel.org/sbt-typelevel/site.html

Yep, I was just thinking that having a site might be ideal

@TonioGela i copied the virtuslab one-for-one that doesn't work either, I can polish it so that it's runnable, probably better

@TonioGela updated it

Thanks @Koroeskohr, I'll add it to the site once published :)

@TonioGela continueing here about the Pokemon example:

Well, how about a stuffed example that:
accepts from command line a pokemon kind
writes a csv with all results (restricted to a few properties)

Will it be too long? OFC I don't know if that search-ish API exists
[EDIT] there's https://pokeapi.co/docs/v2#types :D

I think this is good! I should probably have it's separate page because it'll be a "big" example, but honestly it showcases some cool stuff.

is this one good enough as an example: https://github.com/lichess-org/scalachess/pull/352#issuecomment-1398911858 ?

@TonioGela thanks for your feedback and suggestion. I will open a pull request this week (with Scala 2 version ;) of course).

you might enjoy or be inspired by looking at what we're doing at scalacenter/docs.scala-lang#7 — we're still making adjustments to the texts of the sections, but the table of contents isn't likely to change much further before initial publication

The most interesting part is that it advertises tests too, and atm we don't showcase any example that contains tests. It may be worth investing time in showing people how fun is to write tests with munit-effect 🤔

I use scala-cli for testing (with cats-effect) now, but I use weaver not munit-effect 😂

I'm 100% down to make an example about unit testing with munit-effect (tho I have more experience with weaver), but I've thought about it for a while now and can't figure out any compelling problem/example that shows it off lol.

The famous Pokemon example that I suggested to you some time ago had a bonus point section that asked to reduce the usage of the external APIs caching them.
A good example might be writing something that relies on an external API memoizing its results and checking that the effective API gets called just once. Probably it's a bit convoluted though.

@TonioGela continueing the JSON derived example discussion here, how about:
- Write `Author`, `Post` and `Comment` case classes, with automatic derivation
- Create a stream of authors and...`print` them out?
- Maybe chuck in an unit test in there?

I have few lichess related examples, one is simpler than the other:

Streaming chess games: stream games in ndjson format, parse, handle some edge cases.

Download chess puzzles: stream a zip file, unzip on the fly, parse csv data and do some filter.

But I'm not sure we want to flood our examples with lichess 😂


[Suggestion] Add Window box

So how about a nice external window box that we can put flowers in? Something like a minecraft pot that takes the texture of the block in the bench, but sticks to the outside of the window with the length of a block.
There is also that other decoration piece that goes in place of the window box that is only decor not for flowers, but I have no idea how it is called.

The thing under the window on the outside is an "exterior moulding". It's also not very visually distinct from a soffit, so the block might wind up used both under windows, and over windows and doors. I like this idea.


Add example azure-pipelines.yml script

Add example script for use with Azure DevOps, to build and publish your function app.

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.:x: martinnormark sign nowYou have signed the CLA already but the status is still pending? Let us recheck it.

@martinnormark : Thanks for your contribution! The author, @ggailey777, has been notified to review your proposed change.

@asavaritayal can you please review this proposed addition to the Python reference article?

@ggailey777 We already have a DevOps script in the Python reference but this is much cleaner. I'll find some time to test with a couple of apps and propose updates, if nay.

Hi @asavaritayal - Would you add a comment to show what action to take on this PR:
Merge the PR: #sign-off
Close the PR: #please-close
Wait on the PR: #hold-off
Thanks!

Please #hold-off as it sounds like @asavaritayal wants to do some more verification.

Close/reopen for fresh validation post-migration.

The official pipeline scripts are now available here - https://docs.microsoft.com/en-us/azure/azure-functions/functions-how-to-azure-devops#python. We can #please-close this PR in favor of the validated yaml scripts.


fix: with_role_excluding has bad subquery

Rbac.filtered and search uses with_role_excluding to filter for non tenant_admin users.
Unfortunately, the subquery was using the select from the main query and
was blowing up.
It is now properly isolating the queries and tests have been added to
protect against regressions.
A similar issue exists for User.with_same_userid. That was corrected here as well.
Thanks @yrudman for the teamwork.
Fixes https://bugzilla.redhat.com/show_bug.cgi?id=1623464

@kbrock Wow, I'll need to review this more but I think I follow what happens.  I don't know how we know we want to unscope in all cases.

@jrafanie thanks for pointing out typo - this good for you now?

LGTM, please add backport labels... @kbrock how confident are you for backporting this?


"Office 365 Business Premium" is outdated

In the table above, there is a reference to a SKU named "Office 365 Business Premium". The name has changed, is now "
Microsoft 365 Business Standard"

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: feb03e63-f543-d85b-9daf-16b4d1e13a60
Version Independent ID: da9dcdd2-70d4-e08e-18f2-6e6a1489937a
Content: Azure Multi-Factor Authentication versions and consumption plans
Content Source: articles/active-directory/authentication/concept-mfa-licensing.md
Service: active-directory
Sub-service: authentication
GitHub Login: @iainfoulds
Microsoft Alias: iainfou

@mbender-ith Thanks for your feedback! We will investigate and update as appropriate.

@mbender-ith The PR for the fix has been created and submitted for author's approval. Thanks again for pointing this out, I am closing the issue based on this update, please let us know if there is something else that we can help you with.


make it harder to accidentally edit files in the pub-cache

Perhaps in the outline view, have a .pub-cache or Dart SDK title.

Or we watch the file, and throw up a toast if they start editing a file in the pubcache.


integrate .Net dataplane automation to unified pipeline

In Unified pipeline(azure-rest-api-specs) enable .Net dataplane

The task is completed. close it.


Add lab support to build

Note: for support questions, please use one of these channels:
https://forum.ionicframework.com/
http://ionicworldwide.herokuapp.com/
Short description of the problem:
I can use  ionic serve -l to ghet the lab view of my app, but not the build / cordove:build command.
What behavior are you expecting?
I'd love to have the option of building my app in lab mode. The usecase here would be a CI built static version of my app that can be better viewed when in lab mode.

Building compiles application for use in device or emulator. There's no software that i know which would run both iOS and Android packages, even more so at the same time. Just run iOS emulator side by side with android emulator if you want to have something similar.


It cannot load canvas.js

I downloaded the project and opened it´s html-file through microsoft edge, because i cannot find an online running version on the web.
But it cannot load canvas.js and outputs this error:
`paper.js:14337  Access to XMLHttpRequest at 'file:///D:/Mods/knottingham-main/knottingham-main/js/canvas.js' from origin 'null' has been blocked by CORS policy: Cross origin requests are only supported for protocol schemes: http, data, isolated-app, chrome-extension, chrome-untrusted, https, edge.
request @ paper.js:14337
paper.js:14337
    Failed to load resource: net::ERR_FAILED

request @ paper.js:14337
paper.js:14337  Uncaught DOMException: Failed to execute 'send' on 'XMLHttpRequest': Failed to load 'file:///D:/Mods/knottingham-main/knottingham-main/js/canvas.js'.
at Object.request (file:///D:/Mods/knottingham-main/knottingham-main/lib/paper.js:14337:14)
at HTMLCollection.loadScript (file:///D:/Mods/knottingham-main/knottingham-main/lib/paper.js:17405:10)
at HTMLCollection.forIn (file:///D:/Mods/knottingham-main/knottingham-main/lib/paper.js:56:11)
at Function.each (file:///D:/Mods/knottingham-main/knottingham-main/lib/paper.js:75:7)
at loadAll (file:///D:/Mods/knottingham-main/knottingham-main/lib/paper.js:17422:8)
index.html:33  Uncaught TypeError: window.globals.draw is not a function
at HTMLButtonElement.onclick (index.html:33:202)`
How do i get it to work local?

Hello and thanks for using knottingham!
You have two options:

Serve a local webserver with npx http-server --cors for which you need to install npm.
Allow CORS on localhost. I don't recommend you to do this as it comes with security risks. Therefore I need to stress that you would be doing this at your own accountability only. It looks like you are using Edge, so it might also be needed to switch browsers.

Does this work with the free version, too?


Universal Code Implemenetation

Let's not make users to worry about on which file to execute!
So, I've implemented universal code so that people just execute once command on all Platform. For now, we are supporting Debian, Windows 32 & 64 bit operating systems.

Great idea! Thanks!


Safari Service Worker Problems

[x] This is not a v0.x issue.
[x] I have searched the issues of this repository and believe that this is not a duplicate.

Expected Behavior

Navigating around the https://material-ui.com/ site should work on Safari.
Current Behavior

Unrecoverable error after navigating and refreshing on some pages.
Workaround/Fix?
See original post for possible fix via Workbox upgrade: https://github.com/GoogleChrome/workbox/issues/1730

Thanks, but I haven't tested this on iOS Safari; this was found on macOS Safari.

We can start by upgrading the version of workbox: https://github.com/mui-org/material-ui/blob/a74ce52105039369c8b320fdbd8aeb977c2928ee/docs/src/sw.js#L4
@msiadak Do you have experience with the latest version of workbox?

I don't, but I'm happy to take a look and work through the breaking changes since 3.0.0-beta.0 to try and find an upgrade path.  I'm hoping it won't be a large effort due to our use of Workbox being relatively basic.

@msiadak Men, this would be awesome!


#185218927 Role based access control (RBAC)

What does this PR do?

Admin should be able to assign roles [customer, merchant, admin]

Description of Task to be completed?

Admin should be able to assign various users to various roles.
To allow only accounts with particular roles permission to perform particular actions.

How should this be manually tested?

Clone the repository using git clone https://github.com/atlp-rwanda/e-comm-team-techsmith-fn

Checkout to the branch using git checkout ft-Role-based-access-control-185218927

Install node packages that the application depends on: npm i

Create a .env file in the root directory and add all environment variables required to run the application. The required variables are listed in the .env.example file available in root directory of the application.

Start the application development server: npm start

Check out the components documentation: npm run storybook

What are the relevant pivotal tracker/Trello stories?
#185218927
Screenshots (if appropriate)

@irakevine  I did it thanks


Editing a post you don't own should be marked differently

A different edit icon (presumably the same pencil but with some addition of some kind?) in addition to an edit button on the stats page would be good.
Suggested by Moriwen here.

Given that there's now an edit button on the stats page, this should probably be changed similarly to how we will change the pencil on the main post (and maybe also change the text to "Edit Metadata" instead of "Edit Post").


A failed activity log displays when executing "Undelete" for active folders under one Azure AD attached HNS folder

Storage Explorer Version: 1.21.0
Build Number: 20210905.1
Branch: rel/1.21.0
Platform/OS: Windows 10/Linux Ubuntu 18.04/MacOS Big Sur 11.4
Architecture: ia32\x64
How Found: From running test case
Regression From: Not a regression
Bug Descriptions
A failed activity log displays when executing "Undelete" for active folders under one attached HNS folder (Both SAS attached with full permissions and Azure AD attached).
Steps to Reproduce

Make sure the setting "Enable ADLS Gen2 soft delete (Preview)" is enabled.
Expand one ADLS Gen2 storage account -> Blob Containers.
Create a blob container -> Add the rbac role 'Storage Blob Data Contributor' then assign to one azure account.
Create a folder in the blob container -> Create a subfolder in the folder -> Attach the parent folder via Azure AD.
The Azure AD attached folder is auto opened -> Click 'Undelete -> Undelete Selected' -> Click 'OK'.
Check whether display a successful activity log.

Expected Experience
Display a successful activity log.

Actual Experience
Display a failed activity log.

Additional Context

This issue also reproduces with rbac role "Storage Blob Data Owner".
This issue also reproduces when adding the rbac role on the storage accounts level.
This issue also reproduces when the subfolder contains soft-deleted blobs.
This issue also reproduces when using "Undelete by Date...".

The endpoint used to send the undelete request incorrectly include path of the attached directory.

@JasonYeMSFT Verified on the main build 20210918.3. Fixed.
One question needs to confirm:
It directly opens the folder after Azure AD attaching the HNS folder, as the below:

No error occurs when clicking 'Back' to switch to the its parent directory . Is this intentional?

That's expected. The attachment is intended to let user bypass directories he doesn't have access to. If they do, they can still go backwards.


Data Augmentation

We currently have less data for training Machine Learning models. I suggest that we try these approaches and compare the performance:

Bootstrapping to augment the data, and training models on this higher data volume
Use Bagging Classifier as the ensemble model,, which fits base model on the bootstrapped samples and combines the results: https://scikit-learn.org/stable/modules/generated/sklearn.ensemble.BaggingClassifier.html

This thread has been opened for discussing on data augmentation techniques.

"bagging methods work best with strong and complex models (e.g., fully developed decision trees), in contrast with boosting methods which usually work best with weak models (e.g., shallow decision trees)"
I'm not entirely sure which model our dataset will fall under.
Also, this will affect the interpretability of the results. I'm not sure if this is the optimal approach


move up interestedConsumers to fix sync/atomic warning

What

change the position of the interestedConsumers field so it has 64-bit alignment within the struct

Why

on 32-bit ARM systems, sync/atomic operations will panic when they use this field

Lint failure
The rdk repo will soon lint all dependencies for this error. Linter output:
media.go:461:2: SA1027: address of non 64-bit aligned field interestedConsumers passed to sync/atomic.AddInt64 (staticcheck)
        atomic.AddInt64(&ms.prodCon.interestedConsumers, 1)
        ^
media.go:241:18: SA1027: address of non 64-bit aligned field interestedConsumers passed to sync/atomic.LoadInt64 (staticcheck)
                                        requests := atomic.LoadInt64(&pc.interestedConsumers)
                                                    ^
media.go:252:18: SA1027: address of non 64-bit aligned field interestedConsumers passed to sync/atomic.LoadInt64 (staticcheck)
                                                requests = atomic.LoadInt64(&pc.interestedConsumers)
                                                           ^
media.go:281:6: SA1027: address of non 64-bit aligned field interestedConsumers passed to sync/atomic.AddInt64 (staticcheck)
                                        atomic.AddInt64(&pc.interestedConsumers, -requests)
                                        ^

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.Abe Winter seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.


API cleanup.

This PR cleans up the interface by hiding non-public functions.

:100:

@nnmm I think here a :100: unfortunatly isn't enough to approve :disappointed:

@wally-the-cartographer merge

Merge requested by authorized user feuerste. Merge queue now has a length of 1.


Osram Lightify e14 Tunable White lights do not toggle with transition correctly

Home Assistant release with the issue: 0.88.1

Last working Home Assistant release (if known): Unknown
Operating environment (Hass.io/Docker/Windows/etc.): Intel NUC - Ubuntu Server

Component/platform: light.osramlightify

Description of problem: I have some Osram Lightify e14 Tunable White lights. I can light.toggle them correctly. They "hard" turn on/off rather than with a quick fade like LIFX lights have. I wanted to replicate this by adding a transition:2 to the light.toggle service call.
The transition works correctly when toggling the lights off from an on state. However upon calling light.toggle immediately after, the light turns on to its dimmest state.
My theory is that the light.toggle --> on is turning on to the lowest brightness given by the transition mechanism rather than the original state from which the transition-to-off started.
Problem-relevant configuration.yaml entries and (fill out even if it seems unimportant):
Lights are paired via deconz:
            {
                "connection_class": "local_push",
                "data": {
                    "allow_clip_sensor": true,
                    "allow_deconz_groups": true,
                    "api_key": "",
                    "bridgeid": "",
                    "host": "xxx.xxx.xxx.xxx",
                    "port": xxxx
                },
                "domain": "deconz",
                "entry_id": "6bbc56b1f6ad4514a3b52058a442e201",
                "source": "user",
                "title": "deCONZ-00212EFFFF0329B9",
                "version": 1
            }

Traceback (if applicable):

Additional information:

Can you enable debugging for deconz and share logs when you do this.
I don't expect that there is anything to do with the integration. This is probably a limitation in either the light or in deCONZ.
To solve this you will probably need to create a more advanced automation that stores your previous brightness.

This is a confirmed issue with deCONZ. They are working on a fix.


Make key sibling more sensible with \declaretheorem{}

Use case:
Define multiple theorem environments simultaneously and make them share the same counter. So with
\documentclass{article}
\usepackage{thmtools}

\declaretheorem{theorem, definition} % which (new) option here? to be decided

\begin{document}
\begin{theorem}     content \end{theorem}
\begin{definition}  content \end{definition}
\begin{theorem}     content \end{theorem}
\end{document}

one will get
Theorem 1
Definition 2
Theorem 3

(from user José Gil Férez by email)
Discussions:
Suppose \declaretheorem{theorem, definition}[<key>=theorem] does the work, then the logic is "use key value (theorem) as sibling value, or ignore it if it is the same as the env name to be defined". It seems this logic can be directly added to the existing key sibling, because normally it's non-sense to use \declaretheorem{env}[sibling=env].
Cons: This requires that the sibling value to be the first one in the env list. As a counterexample, \declaretheorem{theorem, definition}[sibling=definition] won't work.

Suppose \declaretheorem{theorem, definition}[<key>=theorem] does the work, then the logic is "use key value (theorem) as sibling value, or ignore it if it is the same as the env name to be defined". It seems this logic can be directly added to the existing key sibling, because normally it's non-sense to use \declaretheorem{env}[sibling=env].

This solely could be implemented as simple as
diff --git a/source/thm-kv.dtx b/source/thm-kv.dtx
index 7859126..dd34ecd 100644
--- a/source/thm-kv.dtx
+++ b/source/thm-kv.dtx
@@ -409,7 +409,9 @@
     \@nx\thmt@newtheorem
     \ifthmt@isnumbered
       {#1}%
-      \ifx\thmt@sibling\@empty\else [\thmt@sibling]\fi
+      \ifx\thmt@sibling\@empty
+      \else\ifx\thmt@sibling\thmt@envname
+      \else [\thmt@sibling]\fi\fi
       {\thmt@thmname}%
       \ifx\thmt@parent\@empty\else [\thmt@parent]\fi
     \else

A continued example:
\documentclass{article}
\usepackage{thmtools}
\usepackage{xpatch}

\makeatletter
\xpatchcmd\declaretheorem@iii
  {\ifx\thmt@sibling\@empty\else [\thmt@sibling]\fi}
  {\ifx\thmt@sibling\@empty
   \else\ifx\thmt@sibling\thmt@envname
   \else [\thmt@sibling]\fi\fi}
  {}{\fail}
\makeatother

\declaretheorem{theorem, definition}[sibling=theorem]

\begin{document}
\begin{theorem}     content \end{theorem}
\begin{definition}  content \end{definition}
\begin{theorem}     content \end{theorem}
\end{document}

This will give the desired output.
But since sibling/numberlike and parent/numberwithin are mutually exclusive, the above patch will NOT resolve José's request: use
\declaretheorem[style=theorem, numberwithin=chapter]
   {theorem, lemma, proposition, corollary}

to define env theorem numbered within chapter, and all the following envs numbered like theorem.
José's proposal, a new boolean option siblings, is closer (to the final decision).


JavaScript error in main process

Seems to be triggered by the hypterterm-1password plugin, so it might be a problem with that extension.  Figured I'd share it anyhow, since probably this shouldn't be possible anyway.
Uncaught Exception:
Error: watch /Users/isaacs/.node-spawn-wrap-24946-c86a459da0b6 ENOENT
    at exports._errnoException (util.js:949:11)
    at FSWatcher.start (fs.js:1433:19)
    at Object.fs.watch (fs.js:1460:11)
    at Gaze._watchDir (/Applications/HyperTerm.app/Contents/Resources/app/node_modules/gaze/lib/gaze.js:288:30)
    at /Applications/HyperTerm.app/Contents/Resources/app/node_modules/gaze/lib/gaze.js:357:10
    at iterate (/Applications/HyperTerm.app/Contents/Resources/app/node_modules/gaze/lib/helper.js:69:5)
    at /Applications/HyperTerm.app/Contents/Resources/app/node_modules/gaze/lib/helper.js:78:11
    at /Applications/HyperTerm.app/Contents/Resources/app/node_modules/gaze/lib/gaze.js:422:5
    at iterate (/Applications/HyperTerm.app/Contents/Resources/app/node_modules/gaze/lib/helper.js:69:5)
    at /Applications/HyperTerm.app/Contents/Resources/app/node_modules/gaze/lib/helper.js:78:11

Getting the exact same error when I try to use nyc
$ nyc ava

I got this after installing hyperterm-colors and hyperterm-spacegray:

This was for a first time install, couldn't repro for subsequent installs of the plugins.

Yeah @SamVerschueren. I get this error right now and I'm runing running ava in another window (not-hyperterm).

Since this has been reported a lot of times, I'm going to mark it as Priority: high.
Related/duplicates: #357, #401, #444, #542, #564, #680

Anyone have any insight on this? Can this exception be safely ignored?

I no longer believe that this is related to hypterterm-1password.  It's definitely got something to do with spawn-wrap and nyc.  Not clear how those are causing this error, though.

I have the same issue with nyc without the 1password plugin.

I have the same error without any plugins :(

@isaacs If #587 and #444 actually are duplicates of this (as @matheuss has suggested by closing them in favor of this), then it doesn't even seem related to either nyc or spawn-wrap directly; the paths /Users/hq/.hyperterm_plugins/node_modules/.staging (from #587) and /Users/iradchenko/.google-cloud-sdk.staging (from #444) seem unrelated. I know I've gotten this type of error without ever using nyc; I'm pretty sure I don't have any projects on my system which use Istanbul.
It does seem like @rauchg's comment on #542 might be our best lead, since gaze does seem to be the common source of these errors, and it seems that it's watching files it shouldn't be. (ones outside the HyperTerm config directory)

Pretty sure this is because we don't handle the error event from gaze. According to @shama's comment on #542, the bug was fixed on gaze's side, but that just means the error now gets emitted from the gaze object, instead of being unhandled on the FSWatcher object. We still need to handle that event in HyperTerm's code, or it will crash the process in the same way.

#706 Another one, probably dup, and originating from .hyperterm_plugins with slightly different error stack.

@whitelynx Ah, that's interesting!  I wonder if gaze is incorrectly watching files that are being created in the home directory by spawn-wrap in folders like ~/.node-spawn-wrap-xxxxxx, and then when the process ends and those files disappear, it freaks out with an ENOENT.

I'm getting this with nyc as well. Here's my stacktrace:
Uncaught Exception:
Error: watch /Users/brandon/.node-spawn-wrap-57998-93b051b6d4bb ENOENT
    at exports._errnoException (util.js:949:11)
    at FSWatcher.start (fs.js:1433:19)
    at Object.fs.watch (fs.js:1460:11)
    at Gaze._watchDir (/Applications/HyperTerm.app/Contents/Resources/app/node_modules/gaze/lib/gaze.js:288:30)
    at /Applications/HyperTerm.app/Contents/Resources/app/node_modules/gaze/lib/gaze.js:357:10
    at iterate (/Applications/HyperTerm.app/Contents/Resources/app/node_modules/gaze/lib/helper.js:69:5)
    at /Applications/HyperTerm.app/Contents/Resources/app/node_modules/gaze/lib/helper.js:78:11
    at /Applications/HyperTerm.app/Contents/Resources/app/node_modules/gaze/lib/gaze.js:422:5
    at iterate (/Applications/HyperTerm.app/Contents/Resources/app/node_modules/gaze/lib/helper.js:69:5)
    at Object.forEachSeries (/Applications/HyperTerm.app/Contents/Resources/app/node_modules/gaze/lib/helper.js:83:3)

I was able to work around this with the following patch:
diff --git a/Applications/HyperTerm.app/Contents/Resources/app/node_modules/gaze/lib/gaze.js.original b/Applications/HyperTerm.app/Contents/Resources/app/node_modules/gaze/lib/gaze.js
index fe80d80..b684d35 100644
--- a/Applications/HyperTerm.app/Contents/Resources/app/node_modules/gaze/lib/gaze.js.original
+++ b/Applications/HyperTerm.app/Contents/Resources/app/node_modules/gaze/lib/gaze.js
@@ -296,9 +296,9 @@ Gaze.prototype._watchDir = function (dir, done) {
           done(null, dir);
         }
       }, delay + 100);
-    })
+    }).on('error', function (err) {})
   } catch (err) {
-    return this._handleError(err);
+    return this
   }
   return this;
 };

Not sure if this is helpful, or should be sent upstream to gaze, or what.

This commit on gaze seems to fix the error:
https://github.com/shama/gaze/commit/264101644d105f010e382e371db4eda0e45cbdfd

@H1rag4mi patched it manually and now it seems to fail only when hyperterm is in the background.

Got the same, when hyperterm was in the background

Same error, also when using nyc.
Uncaught Exception:
Error: watch /Users/tommy.leunen/.node-spawn-wrap-14935-c1542e645938 ENOENT
    at exports._errnoException (util.js:1026:11)
    at FSWatcher.start (fs.js:1439:19)
    at Object.fs.watch (fs.js:1466:11)
    at Gaze._watchDir (/Applications/Hyper.app/Contents/Resources/app/node_modules/gaze/lib/gaze.js:288:30)
    at /Applications/Hyper.app/Contents/Resources/app/node_modules/gaze/lib/gaze.js:357:10
    at iterate (/Applications/Hyper.app/Contents/Resources/app/node_modules/gaze/lib/helper.js:69:5)
    at /Applications/Hyper.app/Contents/Resources/app/node_modules/gaze/lib/helper.js:78:11
    at /Applications/Hyper.app/Contents/Resources/app/node_modules/gaze/lib/gaze.js:422:5
    at iterate (/Applications/Hyper.app/Contents/Resources/app/node_modules/gaze/lib/helper.js:69:5)
    at /Applications/Hyper.app/Contents/Resources/app/node_modules/gaze/lib/helper.js:78:11

@H1rag4mi I made the fix on my local app and I still have the errors :/ Looks like what @krzkaczor describes...

Don't know if this helps but I just got the same error when mving a directory just after creating it. Furthermore subsequent mkdirs often (but not always) throw the exception as well. I can reproduce it on my machine; although I sometimes have to do the mv multiple times to trigger. Also note every subsequent exception references the original dir (the one that was mved). OS X 10.11, HyperTerm 0.8.1.

Steps to trigger:
~ $ mkdir test
~ $ mv test/ test2 #Throws exception referencing ~/test
# sometimes I need to `mv test2/ test3`, etc to reproduce.
~ $ mkdir test3 #Throws exception referencing ~/test as well

I thought we'd bumped gaze to fix this issue. We have to make sure it's at the latest.

I can confirm that this is still present on 0.8.2 using the method I described above to reproduce.

Hmm dang, I'll try @jcoetzee's repro steps today and see what's up.

@shama thanks so much for following up 🎉 let me know when I should bump and release

Is there any progress on this? I'm my office is still getting a version of this error.

I'm also getting it, especially when doing a make and many files are being created and deleted 😟

What version are you running? Latest?
– @rauchg https://twitter.com/rauchg
On Fri, Dec 2, 2016 at 1:40 AM, H1rag4mi<EMAIL_ADDRESS>wrote:

I'm also getting it, especially when doing a make and many files are being
created and deleted 😟
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub
https://github.com/zeit/hyper/issues/225#issuecomment-264340349, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AAAy8Qx_oQs6X1k320JnSLZqLjfOCvQCks5rD2kNgaJpZM4JOdYs
.

I'm on Hyper <IP_ADDRESS>3, and I just got a similar error when trying to customize my startup shell command.
I was able to get a minimal reproduction of the error by setting:
 shell: 'bash -c /bin/bash'

in ~/.hyper.js. That same command works when I run it in an existing shell.
The error dialog:

Stacktrace:
Uncaught Exception:
Error: spawn bash -c /bin/bash ENOENT
    at Object.exports._errnoException (util.js:1026:11)
    at Socket.<anonymous> (/Applications/Hyper.app/Contents/Resources/app/node_modules/child_pty/lib/child_pty.js:103:15)
    at Socket.g (events.js:286:16)
    at emitOne (events.js:96:13)
    at Socket.emit (events.js:188:7)
    at readableAddChunk (_stream_readable.js:176:18)
    at Socket.Readable.push (_stream_readable.js:134:10)
    at Pipe.onread (net.js:543:20)

I get this error for a long time. But sometimes, when the network is in good condition. It works. Nothing was changed with hyper.

was there ever an official fix for this? i've been getting this error off and on for months now, and i can't seem to find a working fix for it?  it seems to happen most often—at least as far as i can tell—when i have some dir or another open in hyper, and i create a new dir, delete a dir, etc. so it seems linked in some way to the watch process (obviously, i guess), and the ability to refresh the current contents of the dir. i specifically noticed this, and have been able to recreate it, when i—for example—navigate to a particular dir and then add a dir through the finder.
realistically, this wouldn't be that big of a deal, except that sometimes it just seems to get caught in a loop in itself, and once i hit "OK" the error just comes up again, and again, and again, until i just force quit the application and restart it.
i'm on the most recent version of hyper, and my plugins are as follows—
"dependencies": {     "hyper-blink": "latest",     "hyper-material-vibrancy": "latest",     "hyper-stylesheet": "latest",     "hyperminimal": "latest",     "hyperborder": "latest",     "hyper-search": "latest"   }


[KeyVault] adding version 2018-02-14-preview with Network ACLs

This checklist is used to make sure that common issues in a pull request are addressed. This will expedite the process of getting your pull request merged and avoid extra work on your part to fix issues discovered during the review process.
PR information

[ ] The title of the PR is clear and informative.
[ ] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For information on cleaning up the commits in your pull request, see this page.
[ ] Except for special cases involving multiple contributors, the PR is started from a fork of the main repository, not a branch.
[ ] If applicable, the PR references the bug/issue that it fixes.
[ ] Swagger files are correctly named (e.g. the api-version in the path should match the api-version in the spec).

Quality of Swagger

[ ] I have read the contribution guidelines.
[ ] My spec meets the review criteria:

[ ] The spec conforms to the Swagger 2.0 specification.
[ ] The spec follows the guidelines described in the Swagger checklist document.
[ ] Validation tools were run on swagger spec(s) and have all been fixed in this PR.

This PR replaces https://github.com/Azure/azure-rest-api-specs/pull/2509.  We're going to develop our preview swaggers in the keyvault_preview branch to better facilitate the PR automation flow.

Automation for azure-sdk-for-python

Automation for azure-sdk-for-go

Automation for azure-sdk-for-node


Sending msg once and stop Repeat sending message

I want to get user message send to admin, That is okey in First Time, But in each /start that send a duplicate message to admin.
For example in First /start my input is A and my output is:
A
Your Message Saved, Can I Send it?

After Send:
A
User Message to Admin
Your message has been successfully sent

In Secend /start my input is B and my output is;:
B
Your Message Saved, Can I Send it?

After Send:
B
User Message to Admin
B
User Message to Admin
Your message has been successfully sent
Your message has been successfully sent

and
In Third /start my input is C and my output is;:
above output but 3 repeat message C
How Should I Solve This?


Scripts

I found your integration on discord, somebody was mentioning it.
it is an amazing integration, keep up the good work!
But i found a bug i think, It is not possible to turn on a script in the action part.

This is the yaml it's creating
name: Alarm Triggered
modes:
  - armed_away
triggers:
  - state: triggered
actions:
  - service: script.turn_on
    service_data:
      entity_id: script.1607170311437

The problem is that a script is not turned on or turned off. It should be executed.
I should make something that changes the buttons below when you choose script.
Please give me a week or so, I will add it when I find the time.

Thanks for your quick response,
enjoy your Holidays days,

I'm using scripts, and they work fine with turn_on

@zbuh can you share your yaml off that action part?

name: Alarm Triggered - Home
modes:
  - armed_home
triggers:
  - state: triggered
actions:
  - service: script.turn_on
    service_data:
      entity_id: script.alarm_triggered_home

That's weird
now it's working without a any errors
thanks for the help, I think it can be closed now.

Hmm is this working I am having trouble saving when using scripts


IAM Role: Access Denied in AWS GovCloud

Hello,
I get Access Denied using IAM roles in GovCloud when running for example:
./thanos compact --wait --retention.resolution-raw=90d --retention.resolution-5m=180d --retention.resolution-1h=360d --objstore.config-file=/root/thanos/thanos-0.13.0.linux-amd64/bucket_config.yml --data-dir=/root/thanos/thanos-0.13.0.linux-amd64/data
level=info ts=2020-06-22T16:04:48.279448176Z caller=http.go:56 service=http/server component=compact msg="listening for requests and metrics" address=<IP_ADDRESS>:10902
level=error ts=2020-06-22T16:04:48.668062239Z caller=compact.go:386 msg="retriable error" err="compaction: sync: BaseFetcher: iter bucket: Access Denied"
level=error ts=2020-06-22T16:04:49.005389867Z caller=runutil.go:98 msg="function failed. Retrying in next tick" err="BaseFetcher: iter bucket: Access Denied"
It is running in a container using IRSA IAM roles assigned to the pod.
To see if roles works ok, I run the aws cli in the same pod and it works ok, but thanos fails.
Also to discard that is a Role Policy error, I gave S3 full access, but thanos still fails.
I get AccessDenied error for thanos-store, thanos-compactor and thanos-sidecar.
It is running in GovCloud AWS.
I am using Thanos 0.13.0 version.
I've seen that this bug was fixed in https://github.com/thanos-io/thanos/issues/1494
but for me it is stil failling with the described use case.
the bucket_config.yml:
type: S3
config:
  bucket: <My_Bucket>
  endpoint: s3.us-gov-west-1.amazonaws.com
  region: us-gov-west-1

  insecure: false
  signature_version2: false
  encrypt_sse: false
  put_user_metadata: {}
  http_config:
    idle_conn_timeout: 0s
    response_header_timeout: 0s
    insecure_skip_verify: false
  trace:
    enable: true

Maybe it has something to do with GovCloud Environment?

Maybe. Perhaps it would be worth putting some HTTPS proxy such as https://mitmproxy.org/ in front of the endpoint and see what is the difference in the requests when the AWS CLI makes them, and when Thanos Compactor does that. Could you please try that and report the differences?

I am seeing something similar but on non govcloud eks fargate with IAM roles, and only on the storegateway container (other containers seem to be ok from what I can tell).

For me the fix was to create the service accounts with eksctl create iamserviceaccount with the override flag for each of the four users and attaching the same IAM policy to each user,  AFTER running the helm chart. Seems like something specific to eks cluster security.

I comment to keep alive this issue.
@trsreagan3 can you give some details and examples about steps you did?

Can we reopen this? Still seeing similar issue in govcloud - it won't take IRSA


Update Docker documentation about container options

As request in discuss, i've updated the docker documentation to include more information about our container options such as SOCAT_LINK:

Created a Container options section in docker/README.md
Added documentation for SOCAT_LINK
Moved RUN_CROND documentation to this new section

Thanks!