plain.observer 0.3.7__tar.gz → 0.5.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of plain.observer might be problematic. Click here for more details.

Files changed (28) hide show
  1. {plain_observer-0.3.7 → plain_observer-0.5.0}/PKG-INFO +1 -1
  2. {plain_observer-0.3.7 → plain_observer-0.5.0}/plain/observer/CHANGELOG.md +21 -0
  3. {plain_observer-0.3.7 → plain_observer-0.5.0}/plain/observer/admin.py +1 -22
  4. {plain_observer-0.3.7 → plain_observer-0.5.0}/plain/observer/cli.py +1 -1
  5. {plain_observer-0.3.7 → plain_observer-0.5.0}/plain/observer/core.py +11 -4
  6. plain_observer-0.5.0/plain/observer/toolbar.py +22 -0
  7. {plain_observer-0.3.7 → plain_observer-0.5.0}/pyproject.toml +1 -1
  8. {plain_observer-0.3.7 → plain_observer-0.5.0}/.gitignore +0 -0
  9. {plain_observer-0.3.7 → plain_observer-0.5.0}/LICENSE +0 -0
  10. {plain_observer-0.3.7 → plain_observer-0.5.0}/README.md +0 -0
  11. {plain_observer-0.3.7 → plain_observer-0.5.0}/plain/observer/README.md +0 -0
  12. {plain_observer-0.3.7 → plain_observer-0.5.0}/plain/observer/__init__.py +0 -0
  13. {plain_observer-0.3.7 → plain_observer-0.5.0}/plain/observer/config.py +0 -0
  14. {plain_observer-0.3.7 → plain_observer-0.5.0}/plain/observer/default_settings.py +0 -0
  15. {plain_observer-0.3.7 → plain_observer-0.5.0}/plain/observer/migrations/0001_initial.py +0 -0
  16. {plain_observer-0.3.7 → plain_observer-0.5.0}/plain/observer/migrations/0002_trace_share_created_at_trace_share_id_trace_summary_and_more.py +0 -0
  17. {plain_observer-0.3.7 → plain_observer-0.5.0}/plain/observer/migrations/0003_span_plainobserv_span_id_e7ade3_idx.py +0 -0
  18. {plain_observer-0.3.7 → plain_observer-0.5.0}/plain/observer/migrations/__init__.py +0 -0
  19. {plain_observer-0.3.7 → plain_observer-0.5.0}/plain/observer/models.py +0 -0
  20. {plain_observer-0.3.7 → plain_observer-0.5.0}/plain/observer/otel.py +0 -0
  21. {plain_observer-0.3.7 → plain_observer-0.5.0}/plain/observer/templates/observer/trace.html +0 -0
  22. {plain_observer-0.3.7 → plain_observer-0.5.0}/plain/observer/templates/observer/trace_detail.html +0 -0
  23. {plain_observer-0.3.7 → plain_observer-0.5.0}/plain/observer/templates/observer/trace_share.html +0 -0
  24. {plain_observer-0.3.7 → plain_observer-0.5.0}/plain/observer/templates/observer/traces.html +0 -0
  25. {plain_observer-0.3.7 → plain_observer-0.5.0}/plain/observer/templates/toolbar/observer.html +0 -0
  26. {plain_observer-0.3.7 → plain_observer-0.5.0}/plain/observer/templates/toolbar/observer_button.html +0 -0
  27. {plain_observer-0.3.7 → plain_observer-0.5.0}/plain/observer/urls.py +0 -0
  28. {plain_observer-0.3.7 → plain_observer-0.5.0}/plain/observer/views.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: plain.observer
3
- Version: 0.3.7
3
+ Version: 0.5.0
4
4
  Summary: On-page telemetry and observability tools for Plain.
5
5
  Author-email: Dave Gaeddert <dave.gaeddert@dropseed.dev>
6
6
  License-Expression: BSD-3-Clause
@@ -1,5 +1,26 @@
1
1
  # plain-observer changelog
2
2
 
3
+ ## [0.5.0](https://github.com/dropseed/plain/releases/plain-observer@0.5.0) (2025-09-03)
4
+
5
+ ### What's changed
6
+
7
+ - Extended observer summary mode cookie duration from 1 day to 1 week for improved user experience ([bbe8a8a](https://github.com/dropseed/plain/commit/bbe8a8ad54))
8
+ - Changed admin navigation icon for Spans from "diagram-3" to "activity" ([2aac07d](https://github.com/dropseed/plain/commit/2aac07de4e))
9
+
10
+ ### Upgrade instructions
11
+
12
+ - No changes required
13
+
14
+ ## [0.4.0](https://github.com/dropseed/plain/releases/plain-observer@0.4.0) (2025-08-27)
15
+
16
+ ### What's changed
17
+
18
+ - Toolbar functionality has been moved to a new `plain.toolbar` package, with observer-specific toolbar code now in a dedicated `toolbar.py` file ([e49d54b](https://github.com/dropseed/plain/commit/e49d54bfea))
19
+
20
+ ### Upgrade instructions
21
+
22
+ - No changes required
23
+
3
24
  ## [0.3.7](https://github.com/dropseed/plain/releases/plain-observer@0.3.7) (2025-08-22)
4
25
 
5
26
  ### What's changed
@@ -1,6 +1,3 @@
1
- from functools import cached_property
2
-
3
- from plain.admin.toolbar import ToolbarPanel, register_toolbar_panel
4
1
  from plain.admin.views import (
5
2
  AdminModelDetailView,
6
3
  AdminModelListView,
@@ -8,7 +5,6 @@ from plain.admin.views import (
8
5
  register_viewset,
9
6
  )
10
7
 
11
- from .core import Observer
12
8
  from .models import Span, Trace
13
9
 
14
10
 
@@ -40,7 +36,7 @@ class TraceViewset(AdminViewset):
40
36
  class SpanViewset(AdminViewset):
41
37
  class ListView(AdminModelListView):
42
38
  nav_section = "Observer"
43
- nav_icon = "diagram-3"
39
+ nav_icon = "activity"
44
40
  model = Span
45
41
  fields = [
46
42
  "name",
@@ -81,20 +77,3 @@ class SpanViewset(AdminViewset):
81
77
 
82
78
  class DetailView(AdminModelDetailView):
83
79
  model = Span
84
-
85
-
86
- @register_toolbar_panel
87
- class ObserverToolbarPanel(ToolbarPanel):
88
- name = "Observer"
89
- template_name = "toolbar/observer.html"
90
- button_template_name = "toolbar/observer_button.html"
91
-
92
- @cached_property
93
- def observer(self):
94
- """Get the Observer instance for this request."""
95
- return Observer(self.request)
96
-
97
- def get_template_context(self):
98
- context = super().get_template_context()
99
- context["observer"] = self.observer
100
- return context
@@ -5,7 +5,7 @@ import urllib.request
5
5
  import click
6
6
 
7
7
  from plain.cli import register_cli
8
- from plain.cli.agent import prompt_agent
8
+ from plain.cli.agent.prompt import prompt_agent
9
9
  from plain.observer.models import Span, Trace
10
10
 
11
11
 
@@ -13,7 +13,8 @@ class Observer:
13
13
  """Central class for managing observer state and operations."""
14
14
 
15
15
  COOKIE_NAME = "observer"
16
- COOKIE_DURATION = 60 * 60 * 24 # 1 day in seconds
16
+ SUMMARY_COOKIE_DURATION = 60 * 60 * 24 * 7 # 1 week in seconds
17
+ PERSIST_COOKIE_DURATION = 60 * 60 * 24 # 1 day in seconds
17
18
 
18
19
  def __init__(self, request):
19
20
  self.request = request
@@ -41,19 +42,25 @@ class Observer:
41
42
  def enable_summary_mode(self, response):
42
43
  """Enable summary mode (real-time monitoring, no DB export)."""
43
44
  response.set_signed_cookie(
44
- self.COOKIE_NAME, ObserverMode.SUMMARY.value, max_age=self.COOKIE_DURATION
45
+ self.COOKIE_NAME,
46
+ ObserverMode.SUMMARY.value,
47
+ max_age=self.SUMMARY_COOKIE_DURATION,
45
48
  )
46
49
 
47
50
  def enable_persist_mode(self, response):
48
51
  """Enable full persist mode (real-time monitoring + DB export)."""
49
52
  response.set_signed_cookie(
50
- self.COOKIE_NAME, ObserverMode.PERSIST.value, max_age=self.COOKIE_DURATION
53
+ self.COOKIE_NAME,
54
+ ObserverMode.PERSIST.value,
55
+ max_age=self.PERSIST_COOKIE_DURATION,
51
56
  )
52
57
 
53
58
  def disable(self, response):
54
59
  """Disable observer by setting cookie to disabled."""
55
60
  response.set_signed_cookie(
56
- self.COOKIE_NAME, ObserverMode.DISABLED.value, max_age=self.COOKIE_DURATION
61
+ self.COOKIE_NAME,
62
+ ObserverMode.DISABLED.value,
63
+ max_age=self.PERSIST_COOKIE_DURATION,
57
64
  )
58
65
 
59
66
  def get_current_trace_summary(self):
@@ -0,0 +1,22 @@
1
+ from functools import cached_property
2
+
3
+ from plain.toolbar import ToolbarPanel, register_toolbar_panel
4
+
5
+ from .core import Observer
6
+
7
+
8
+ @register_toolbar_panel
9
+ class ObserverToolbarPanel(ToolbarPanel):
10
+ name = "Observer"
11
+ template_name = "toolbar/observer.html"
12
+ button_template_name = "toolbar/observer_button.html"
13
+
14
+ @cached_property
15
+ def observer(self):
16
+ """Get the Observer instance for this request."""
17
+ return Observer(self.request)
18
+
19
+ def get_template_context(self):
20
+ context = super().get_template_context()
21
+ context["observer"] = self.observer
22
+ return context
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "plain.observer"
3
- version = "0.3.7"
3
+ version = "0.5.0"
4
4
  description = "On-page telemetry and observability tools for Plain."
5
5
  authors = [{name = "Dave Gaeddert", email = "dave.gaeddert@dropseed.dev"}]
6
6
  license = "BSD-3-Clause"
File without changes
File without changes