اختفاء الإشارات المرجعية والسلوك المتوقع لـ /bookmarks

لقد أبلغ مجتمعنا أن الإشارات المرجعية الخاصة بهم تختفي أحيانًا بشكل غامض بعد أن قمنا بالتحديث إلى Discourse 3.0 قبل حوالي شهرين. لقد قمت بتضييق نطاق الشكاوى لتشمل المستخدمين الذين يستخدمون بشكل أساسي /bookmarks (وليس /my/activity/bookmarks) - هناك مشكلة منفصلة تتعلق بقابلية الاستخدام بين الاثنين، ولكن سأصل إليها لاحقًا.

في الوقت الحالي، أنا في حيرة من أمري بشأن السلوك المتوقع لـ /bookmarks نظرًا لأنها لا تحتوي على جميع الإشارات المرجعية للمستخدمين (كما هو مدرج في /my/activity/bookmarks). لماذا هذا؟ بالنسبة لحسابي الخاص، هناك فرق يقارب الثلث في الإشارات المرجعية المفقودة: ألا ينبغي أن يسرد هذان القسمان نفس العدد بالضبط من الإشارات المرجعية/المواضيع؟

اعتقدت ربما أن /bookmarks تدعم فقط المشاركات التي تم وضع إشارة مرجعية عليها (وليس المواضيع)، ولكن يبدو أن هذا ليس هو الحال: يقوم مستخدمونا باستمرار بوضع إشارة مرجعية على مشاركة/موضوع، ورؤيتها تظهر بشكل جيد تحت /bookmarks لبضع ساعات أو أيام، ثم تختفي ببساطة؟ :confused: إذا قاموا بحذف الإشارة المرجعية، أو وضعوا إشارة مرجعية عليها مرة أخرى، فإنها تظهر لفترة، ثم تختفي مرة أخرى. للتوضيح، تظهر الإشارات المرجعية دائمًا بشكل جيد تحت /my/activity/bookmarks، لذا فإن الإشارة المرجعية موجودة - ولكن لسبب ما لا تظهر تحت /bookmarks بعد فترة. يجب أن يكون هناك اختلاف بين محتويات القسمين ولكنني لا أراه - ما الذي أفتقده؟ :thinking:


الآن، السبب في أن هذا مزعج بشكل خاص لمستخدمينا هو أنهم يجدون /my/activity/bookmarks غير قابل للاستخدام لحالتهم الرئيسية وهي العثور على المواضيع التي تم وضع إشارة مرجعية عليها والتي تحتوي على تحديثات (ضمن فئة معينة، أو فقط على المنتدى بأكمله).

أرى الكثير من الوظائف الرائعة في واجهة /my/activity/bookmarks ولكنها لا تزال لا تؤدي وظيفتها الأساسية: القدرة على الفرز حسب آخر نشاط مع رؤية المواضيع التي تحتوي على تحديثات (عدد غير مقروء). سيكون من الرائع لو عمل الفرز هناك أيضًا ولو ظهر عدد المشاركات غير المقروءة في كل موضوع، ولكنني لست متأكدًا من كيفية عمل وظيفة تصفية الإشارات المرجعية حسب الفئة تحت /my/activity/bookmarks، لذلك ربما يكون من المبرر وجود /bookmarks أيضًا.

على أي حال، ربما تكون هاتان مشكلتان منفصلتان هنا (ربما خطأ؟ وقضية تجربة مستخدم)، ولكنهما مترابطتان: لقد كنت أدفع المجتمع لتجنب “الإشارات المرجعية المختفية” باستخدام /my/activity/bookmarks بدلاً من ذلك، ولكن لما يستخدمونها، فإنها لا تعمل حقًا. ربما إذا فهمنا الإشارات المرجعية “المختفية” يمكننا إيجاد حل بديل - لذا: لماذا لا تظهر جميع الإشارات المرجعية تحت /bookmarks؟

5 إعجابات

لقد قللت بعض هذا الفرق إلى حقيقة أن /bookmarks لا تتضمن الرسائل الخاصة المشار إليها كمرجع، وإذا كان للموضوع عدة مشاركات مشار إليها كمرجع، فإنه يعرض الموضوع مرة واحدة فقط تحت /bookmarks.

ومع ذلك، لا تزال الإشارات المرجعية مفقودة. لدينا العديد من الأعضاء الذين لديهم مواضيع تظهر تحت /my/activity/bookmarks والتي لا تظهر دائمًا تحت /bookmarks. التركيز على دائمًا لأنه في البداية تظهر دائمًا، حتى تختفي في النهاية بعد ساعات/أيام. :متألم:

مرة أخرى، بدأ هذا يحدث فقط عندما قمنا بالتحديث إلى Discourse 3.0، لذلك أشك في وجود خطأ.

لا يمكننا حفظ المشاركات، فقط المواضيع :thinking:

فهمي هو أنه يمكنك وضع إشارة مرجعية لمنشورات محددة؛ حتى منشورات متعددة حول نفس الموضوع:

4 إعجابات

فهمك صحيح وصلب حقًا. فهمي ليس كذلك.

متى حصلنا على ذلك؟

هذا، جنبًا إلى جنب مع وضع إشارة مرجعية لرسائل الدردشة (والتي تعمل فقط عند تمكين إضافة الدردشة) موجودة منذ بعض الوقت الآن، على الأقل منذ FEATURE: Promote polymorphic bookmarks to default and migrate (#16729) · discourse/discourse@fcc2e7e · GitHub .

هذا هو جوهر المشكلة حقًا. لا يزال لدينا هذا المسار القديم /bookmarks، وهو مفيد إلى حد ما بسبب الفرز حسب غير المقروء/النشاط ولكنه يفتقر إلى الأشياء الأساسية من المسار الجديد، ومن المحتمل أيضًا أن الاستعلام الذي يستخدمه به بعض المشكلات مع إشارات ما بعد/الموضوع ولا يعرض إشارات الدردشة على الإطلاق.

هذا منطقي تقنيًا نظرًا لأنه مجرد قائمة مواضيع. وليس قائمة مشاركات، إنه أحد الاختلافات الرئيسية بين المسار القديم والجديد.

لست متأكدًا مما نحتاج إلى القيام به هنا، سأبحث في الأمر أكثر وأناقشه داخليًا. ليس من المثالي وجود كلا المسارين، سيكون من الأفضل لو تمكن المسار الجديد من القيام بالميزة المفقودة من المسار القديم.

إعجاب واحد (1)

أدرك الآن أنه ربما كان ينبغي عليّ تقسيم موضوعي إلى قسمين: قسم لموضوع #تجربة_المستخدم (ux) وآخر لموضوع #خطأ_برمجي (bug)، حيث أن مشكلتي الرئيسية (اختفاء الإشارات المرجعية) قد طغت عليها مشكلة سهولة الاستخدام.

في غضون ذلك، كنت أتفحص ميزة الإشارات المرجعية ووجدت خطأ آخر، لكنني ما زلت في حيرة من أمري بشأن سبب اختفاء الإشارات المرجعية بشكل عشوائي من /bookmarks. يبدو أن هذا يحدث بشكل متكرر مع بعض المواضيع أكثر من غيرها لسبب ما، لكنني لم أجد نمطًا مشتركًا. بالنسبة لي، الغريب حقًا هو أنه بعد وضع إشارة مرجعية لشيء ما، يبدو أنه يعرض بشكل جيد تحت /bookmarks لعدد عشوائي من الساعات/الأيام، حتى يختفي من هناك ولا يتم “إصلاحه” إلا بإزالة الإشارة المرجعية ووضعها مرة أخرى.

للتوضيح، هذه ليست مشكلة تتعلق بتعيين تذكير للإشارة المرجعية لحذف الإشارة المرجعية: لا توجد تذكيرات متضمنة، والإشارات المرجعية لا يتم حذفها (لا تزال تظهر تحت /my/activity/bookmarks) - فهي فقط مفقودة من /bookmarks بعد فترة من الوقت.

إعجابَين (2)

تم نقل هذا إلى #bug، نظرًا لأن Support لم يكن أيًا من هذين القسمين، على أمل أن يحظى ببعض الاهتمام هنا.

نعتذر عن هذه الزيادة غير المباشرة، ولكن لدينا عدد كبير من المستخدمين المحبطين وغير الراضين للغاية عن هذا. ربما يؤدي عدم تمكين /bookmarks افتراضيًا (أي، ظهوره في واجهة المستخدم) إلى تقليل التعرض لهذه المشكلة إلى حد ما، ولكن لا يمكنني تخيل أن هذا خاص بمنتدانا.

إعجاب واحد (1)

نحن لا نتجاهلك. :slight_smile: نحن فقط نبحث في أفضل طريقة للتعامل مع الأمر. نأمل أن يكون لدينا المزيد من الأخبار لك قريبًا. :crossed_fingers:

إعجاب واحد (1)

تبدو هذه المشكلة محبطة، لكنني لم أتمكن بعد من تكرارها ولا أتوصل إلى أي تخمينات جيدة حتى الآن حول ما قد يسببها.

سأتجاهل مشكلة تجربة المستخدم (UX) الآن وأركز على الخطأ.

سأبدأ بإعادة صياغة المشكلة:

خطوات نظرية للتكرار، ولكن ليس بتأكيد 100٪:

  1. ابدأ بدون إشارات مرجعية
    • انتقل إلى /bookmarks وتأكد من عدم وجود أي مواضيع في القائمة
    • انتقل إلى /my/activity/bookmarks وتأكد من عدم وجود أي إشارات مرجعية في القائمة
  2. أضف إشارات مرجعية لبعض المشاركات والمواضيع. (على سبيل المثال، 15 إشارة مرجعية عبر 10 مواضيع فريدة)
    • لا نعتقد أن التذكيرات تلعب دورًا هنا، ولكن ربما هي كذلك؟
    • لا نعرف حتى الآن ما إذا كان يهم ما إذا كنت تقوم بوضع إشارة مرجعية على منشور أو موضوع
  3. قم بتدوين عدد المواضيع الفريدة التي تم وضع إشارة مرجعية عليها
  4. انتقل إلى /bookmarks وتأكد من وجود 10 مواضيع في القائمة
  5. انتقل إلى /my/activity/bookmarks وتأكد من وجود 15 عنصرًا في القائمة من 10 مواضيع
  6. انتظر
  7. عد إلى /my/activity/bookmarks وتأكد من وجود 15 عنصرًا في القائمة من 10 مواضيع
  8. انتقل إلى /bookmarks ولاحظ أن هناك أقل من 10 مواضيع في القائمة

إذا كان بإمكان أي شخص البدء بموقع جديد وتكرار هذا بتأكيد أكبر، فسيكون ذلك مفيدًا جدًا في تحديد المشكلة هنا.

بدلاً من ذلك، إذا رأى أي شخص المشكلة، فقط باتباع هذه الخطوات، ربما يمكننا تقديم المشورة بشأن بعض خطوات تصحيح الأخطاء للمساعدة في تحديد المشكلة:

  1. انتقل إلى /my/activity/bookmarks وقم بالتمرير إلى الأسفل.
  2. قم بعد عدد المواضيع الفريدة (N)
  3. انتقل إلى /bookmarks وقم بالتمرير إلى الأسفل.
  4. لاحظ أن هناك أقل من N موضوعًا في القائمة
إعجاب واحد (1)

شكرًا لمحاولتك في حل هذه المشكلة - أعرف أن هذه ليست من أهم الأخطاء التي يجب إصلاحها. :sweat_smile:

نعم، هذه هي الخطوات الصحيحة للوصول إلى هناك، مع ملاحظات بسيطة سأذكرها لاحقًا أدناه.

ومع ذلك، نظرًا للطبيعة العشوائية للمشكلة (تحدث لموضوع عشوائي في وقت ما، وتختفي بعد فترة زمنية اعتباطية) قد يكون من الصعب إعادة إنتاجها بمجرد إعداد المسرح بهذه الخطوات نظرًا لأن الاستخدام العادي يبدو مطلوبًا وليس من الواضح ما إذا كان هناك محفز أو ما هو (والذي قد يكون الوقت): لم أتمكن من إعادة إنتاج الخطأ بنفسي عند الطلب والمستخدمون الذين يبلغون عن هذا أكثر نشاطًا مني في استخدام /bookmarks.

ومع ذلك، لدي تقارير عن العديد من المستخدمين المختلفين المتأثرين بها والتي تحققت منها من خلال انتحال شخصية الحساب. لقد طلبت من البعض عدم إعادة وضع إشارة مرجعية على الأقل لبعض تلك المواضيع التي اختفت من /bookmarks، لذلك، بينما لا يمكنني إعادة الإنتاج عند الطلب، لا يزال لدي وصول إلى الحسابات التي يحدث فيها ذلك ومقارنة /bookmarks و /my/activity/bookmarks تظهر الاختلافات.

بينما لا يمكنني توفير وصول إداري إلى منتدانا، يسعدني تشغيل أي استعلامات SQL، أو طلبات إلى Discourse API الخاصة بمثيلنا (حتى كمستخدمين يعانون من هذا) إذا كان ذلك يساعد. يرجى إرسال رسالة خاصة إليّ للحصول على تفاصيل منتدانا إذا أراد شخص ما إلقاء نظرة.

لقد لعبت لفترة وجيزة مع نقاط النهاية /bookmarks.json و /my/activity/bookmarks.json ولكن لم أتقدم كثيرًا: يبدو أن الصفحة /bookmarks يتم تحميلها بالفعل مع الصفحة الأولى من النتائج، وتصل فقط إلى نقطة النهاية لمزيد من الصفحات، على عكس /my/activity/bookmarks التي يبدو أنها تجلب جميع بيانات الإشارات المرجعية من نقطة النهاية. وبالتالي، لم أتمكن من مقارنة استجابات API بشكل كامل.

أنا لست مطور Ruby، لكنني حاولت معرفة أين تهبط نقطتا النهاية هاتان في الكود لمحاولة فهم الاختلافات، ولكن نظرًا لأنني لست على دراية بمجموعة التكنولوجيا، فقد ضعت في وحدة التحكم ووجدت فقط UsersController#bookmarks.

الآن لبعض التعليقات على الخطوات، ربما ليست ذات صلة كبيرة، فقط من باب التوضيح.

هذا صحيح على الأرجح، لكن لا يمكنني تأكيد ذلك حيث أن جميع المستخدمين المتأثرين في منتدانا هم مستخدمون قدامى لديهم الكثير من الإشارات المرجعية الموجودة وقد أدى الترقية إلى 3.0 إلى حدوث ذلك. ولكن، نظرًا لأن المشكلة تتكرر عند إزالة إشارة مرجعية وإعادة إضافتها، أفترض أنه إذا بدأت بورقة فارغة فسيحدث ذلك أيضًا. قال أحد المراسلين إنه كان أكثر شيوعًا بعد الترقية مباشرة وأصبح أقل تكرارًا … ولكن قد يكونون فقط يفقدون الإشارات المرجعية دون ملاحظة. :sweat_smile:

لقد تحققت مع عدد قليل من المستخدمين الذين كانوا صبورين بما يكفي للمساعدة في فهم هذا وقيل لي:

  • كلاهما دائمًا يضعان علامة مرجعية على المواضيع، وليس المنشورات
  • لا يستخدمون التذكيرات على الإشارات المرجعية أبدًا.

أفترض أن هذا لا يعني أنه لن يحدث مع المنشورات والتذكيرات، فقط أنه لا يعتمد على ذلك.

ملاحظة صغيرة فقط للإشارة إلى أن /my/activity/bookmarks يمكن أن تعرض أيضًا إشارات مرجعية من الرسائل الخاصة، لذلك يمكن أن يكون N مختلفًا من ذلك أيضًا (شيء أدى إلى ضياعي في مرحلة ما).


مرة أخرى، يسعدني تشغيل استعلامات SQL، وطلبات API أو تقديم المزيد من المعلومات إذا كان ذلك مفيدًا. أنا على دراية تامة بأن تصحيح هذا الأمر صعب بسبب سلوكه العشوائي، ولكن هذا هو السبب أيضًا في إحباط المستخدمين.

إعجاب واحد (1)

إحدى النظريات هي أن topic_users.bookmarked قد يكون غير متزامن بطريقة ما. إذا كان لديك موضوع به مشكلة تم تحديده، هل يمكنك محاولة الاستعلام عن جدول topic_users لهذا المستخدم/الموضوع معًا، ومعرفة ما إذا كان bookmarked صحيحًا أم خاطئًا؟

أيضًا، أنا فضولي لمعرفة ما إذا كانت ميزة /filter التجريبية الجديدة https://meta.discourse.org/t/experimental-topics-list-filter-feature/263641 تعرض المواضيع “المفقودة” مع in:bookmarked، على سبيل المثال Discourse Meta. هل يمكنك تجربة ذلك أيضًا وإخبارنا؟

إعجاب واحد (1)

نعم، يبدو أن هذا هو الحال.

لقد نظرت في أحد الإشارات “المفقودة”، وكان topic_users.bookmarked مضبوطًا على false بالنسبة لها. هذا الموضوع لا يظهر تحت /bookmarks، ولكنه يظهر تحت /my/activity/bookmarks.

ولست متأكدًا مما إذا كان ذلك ذا صلة، ولكن topic_users.last_posted_at لهذا السجل يحتوي على تاريخ قديم بحوالي شهر (عندما اختفى)، بينما يحتوي الموضوع المعني على مشاركات شبه يومية منذ ذلك الحين.

على أي حال، لست متأكدًا مما يلمس علامة bookmarked، لكنني أعتقد أنها مشتبه بها.

هل هناك أي شيء آخر يمكنني التحقق منه؟

سأكون سعيدًا بالمحاولة، لكننا على الإصدار المستقر (3.0.3)، لذلك لا نملك ذلك بعد.

إعجابَين (2)

هذا مفيد جدًا. شكرًا لك. إذا كانت لديك فكرة عن الإصدار الذي كان عليه قبل التحديث إلى 3.0.3، فسيساعدنا ذلك أيضًا في تحديد وقت ظهور الخطأ.

لا يمكنني ضمان وقت تحديد أولويات هذا، ولكن أعتقد أن لدينا شيئًا للمتابعة عندما نبدأ.

إعجابَين (2)

لقد كنا دائمًا على الفرع المستقر، لذلك من المحتمل أننا كنا على الإصدار 2.8.14 من قبل. قمنا بالتحديث في 11 مارس، على الأرجح إلى الإصدار 3.0.1، وجاءت الشكوى الأولى في 18 مارس، لذا أفترض نظريًا أنه يمكن أن يكون حتى الإصدار 3.0.2. وبالتالي، فإن العديد من إصدارات 2.9 التجريبية في هذه الأثناء، أخشى ذلك.

إذا كان هناك سجل في مكان ما على نظام الملفات لاستنتاج الإصدارات السابقة، يمكنني التحقق من ذلك، ولكن 2.8.14...3.0.2 يجب أن يكون صحيحًا.


لست متأكدًا مما إذا كان هذا مفيدًا لأنني لست على دراية بالمخطط، لكنني قمت بتشغيل الاستعلام أدناه:

SELECT
  topic_users.user_id,
  topic_users.topic_id
FROM
  bookmarks,
  topic_users
WHERE
  bookmarks.user_id = topic_users.user_id
  AND bookmarkable_type = 'Topic'
  AND bookmarks.bookmarkable_id = topic_users.topic_id
  AND topic_users.bookmarked = false;

وحصلت على أكثر من 3000 نتيجة.

أعتقد أنه يمكن تشغيل شيء مكافئ على أي نظام إنتاجي للعثور على بعض الإشارات المرجعية “المفقودة” والتي نأمل أن تقربنا خطوة واحدة من إعادة إنتاج المشكلة. آسف إذا كنت أذكر ما هو واضح، أحاول فقط أن أكون مفيدًا. :sweat_smile:

إعجابَين (2)

على أي حال، نحن الآن على الإصدار 3.1.2 ولا تزال المشكلة قائمة.

أفاد المستخدمون بأن بعض الإشارات المرجعية “تختفي” بما يصل إلى 5 مرات في اليوم (بعد إعادة وضع إشارة مرجعية لها في كل مرة). كما هي، الوظيفة معطلة للغاية بحيث لا يمكن استخدامها، ولا يوجد بديل جيد يوفر نفس المستوى من الوظائف.

الآن بعد أن أصبح هناك طريقة لإعادة إنتاجه (عن طريق استعلام SQL)، ومجموعة من الإصدارات التي تم فيها تقديم الخطأ، هل يمكنني الحصول على بعض الأمل في معالجة هذا الأمر في وقت ما؟

أوه، الآن بعد أن أصبحت على 3.1.2، في المرة القادمة التي ترى فيها هذا، هل يمكنك التحقق مما إذا كانت هذه المواضيع مفقودة أيضًا من /filter أو ما إذا كانت تظهر هناك؟

أعتقد أن معرفة الإجابة على هذا السؤال ستساعدنا في تحديد ما نفعله هنا.

3 إعجابات

لقد اختبرت باستخدام ميزة /filter ويبدو أن المشكلة تظهر أيضًا مع البحث in:bookmarked.

نظرًا للطبيعة العشوائية لاختفائها، اختبرت هذا عن طريق العثور أولاً على إشارة مرجعية “مسيئة” باستخدام استعلام SQL الذي نشرته سابقًا ثم انتحال شخصية هذا المستخدم، ونجحت في العثور على إشارة مرجعية،

  1. الإشارة المرجعية موجودة في /my/activity/bookmarks (كما هو متوقع)،
  2. ولكن، الإشارة المرجعية غير مدرجة في /bookmarks على الإطلاق (ولكن يجب أن تكون)
  3. ولا تظهر في /filter?q=in%3Abookmarked

الاستعلام عن جدول قاعدة بيانات bookmarks، بالطبع، موجود. ومع ذلك، فإن الاستعلام عن جدول topic_users، يتم تعيين العمود bookmarked على false، والذي أظن أنه قد يكون مرتبطًا بالمشكلة؟

للتوضيح، كان لهذا الحساب أيضًا إشارات مرجعية حيث كانت الإشارة المرجعية تُعرض في جميع الأماكن الثلاثة المذكورة أعلاه (كما ينبغي) - ولكن هذه حالة مؤقتة وتختفي في النهاية. يبدو أن استعلام SQL يُرجع فقط الإشارات المرجعية الإشكالية. وبالتالي، فإن تشغيله على نظام إنتاج مزدحم وانتحال شخصية المستخدم المعني يجب أن يسمح بإعادة إنتاج المشكلة.

إعجاب واحد (1)

شكراً @mentalstring. سأقوم بإعادة هذا الأمر إلى الفريق مرة أخرى بهذه المعلومات الجديدة وسنرى ما سنتوصل إليه بعد ذلك.

إعجابَين (2)

@mentalstring شكراً لتحملك بصبرنا طوال هذه الفترة، نعتذر عن التأخير في الوصول إلى جذر المشكلة. لقد وجدت السبب وطريقة لإعادة إنتاجه اليوم بناءً على البيانات التي قدمتها وتقرير في مستكشف البيانات على Meta. لإعادة الإنتاج:

  • ضع علامة مرجعية على موضوع ولا تضع علامة مرجعية على أي منشورات بداخله
  • احذف أو استرجع أي منشور في الموضوع

السبب هو هذه المهمة (التي أضفتها قبل سنوات) والتي لا تأخذ في الاعتبار العلامات المرجعية على مستوى الموضوع:

لذلك، هناك إصلاح في الطريق مع ترحيل بيانات لتصحيح السجلات الحالية. سأنشر هنا مرة أخرى عندما أقوم بدمجها.

3 إعجابات